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程序设计有所帮助。