Python实现批量转换文件编码的方法

这篇文章主要介绍了Python实现批量转换文件编码的方法,涉及Python针对文件的遍历及编码转换实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了Python实现批量转换文件编码的方法。分享给大家供大家参考。具体如下:

这里将某个目录下的所有文件从一种编码转换为另一种编码,然后保存

 import os import shutil def match(config,fullpath,type): flag=False if type == 'exclude': for item in config['src']['exclude']: if fullpath.startswith(config['src']['path']+os.path.sep+item): flag=True break if type=='filter': for item in config['src']['filter']: if fullpath.endswith(item): flag=True break return flag def conver_file(param): for root, dirs, files in os.walk(param['src']['path']): for filename in files: readfile=root+os.path.sep+"%s" %filename print(readfile) if 'filter' in param['src']: if not (match(param,readfile,'filter')): continue s='' outfile=readfile.replace(param['src']['path'],param['dest']['path']) try : s=open(readfile,encoding=param['src']['encoding']).read() except: print("file %s read erro" % readfile) shutil.copy(readfile,outfile) if s: #False and print("save") with open(outfile, mode='w', encoding=param['dest']['encoding']) as a_file: a_file.write(s) for dirname in dirs: file=root+os.path.sep+"%s" %dirname if 'exclude' in param['src']: if(match(param,file,'exclude')): continue outdir=file.replace(param['src']['path'],param['dest']['path']) #print(outdir) if not os.path.isdir(outdir): os.mkdir(outdir) if __name__ == "__main__": param={'src':{'path':r'D:\work\test\trunk','encoding':'gbk','exclude':['dataa'],'filter':['.php','.html','.htm']}, 'dest':{'path':"f:\\test\\new",'encoding':'utf-8'}} conver_file(param)

希望本文所述对大家的Python程序设计有所帮助。

以上就是Python实现批量转换文件编码的方法的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » python