python获取文件后缀名及批量更新目录下文件后缀名的方法
本文实例讲述了python获取文件后缀名及批量更新目录下文件后缀名的方法。分享给大家供大家参考。具体实现方法如下:
1.获取文件后缀名:
#!/usr/bin/python
importos
dict={}
ford,fd,flinos.walk('/home/ahda/Program/'):
forfinfl:
sufix=os.path.splitext(f)[1][1:]
ifdict.has_key(sufix):
dict[sufix]+=1
else:
dict[sufix]=1
foritemindict.items():
print"%s:%s"%item这里的关键是os.path.splitext()
如abc/ef.g.h,这里获取到的是h
2.python查找遍历指定文件路径下指定后缀名的文件实例:
importos
importsys
importos.path
fordirpath,dirnames,filenamesinos.walk(startdir):
forfilenameinfilenames:
ifos.path.splitext(filename)[1]=='.txt':
filepath=os.path.join(dirpath,filename)
#print("file:"+filepath)
input_file=open(filepath)
text=input_file.read()
input_file.close()
output_file=open(filepath,'w')
output_file.write(text)
output_file.close()3.批量重命名目录中的文件后缀实例:
importos
defswap_extensions(dir,before,after):
ifbefore[:1]!='.':#如果参数中的后缀名没有'.'则加上
before='.'+before
thelen=-len(before)
ifafter[:1]!='.':
after='.'+after
forpath,subdir,filesinos.walk(dir):
foroldfileinfiles:
ifoldfile[thelen:]==before:
oldfile=os.path.join(path,oldfile)
newfile=oldfile[:thelen]+after
os.rename(oldfile,newfile)
printoldfile+'changedto'+newfile
if__name__=='__main__':
importsys
iflen(sys.argv)!=4:
print'Usage:swap_extension.pyrootdirbeforeafter'
sys.exit(1)
swap_extensions(sys.argv[1],sys.argv[2],sys.argv[3])例子:将e:/py/test目录下.php结尾的文件重命名为.py
E:py>python_cooke:/py/test.php.py
e:/py/testtest.phpchangedtoe:/py/testtest.py
e:/py/test1.phpchangedtoe:/py/test1.py
e:/py/test2.phpchangedtoe:/py/test2.py
希望本文所述对大家的Python程序设计有所帮助。