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

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值