批量转换文件编码
发布时间:2020-12-17 17:21:24 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import osimport shutildef match(config,fullpath,type):flag=Falseif type == 'exclude':for item in config['src']['exclude']:if fullpath.starts
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 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:worktesttrunk','encoding':'gbk','exclude':['dataa'],'filter':['.php','.html','.htm']},'dest':{'path':"f:testnew",'encoding':'utf-8'}} conver_file(param) 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |