概述
本文实例讲述了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:worktesttrunk','encoding':'gbk','exclude':['dataa'],'filter':['.php','.html','.htm']},
'dest':{'path':"f:\test\new",'encoding':'utf-8'}}
conver_file(param)
希望本文所述对大家的Python程序设计有所帮助。
最后
以上就是繁荣猫咪为你收集整理的python实现文件编码转换_Python实现批量转换文件编码的方法的全部内容,希望文章能够帮你解决python实现文件编码转换_Python实现批量转换文件编码的方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复