网络编程
位置:首页>> 网络编程>> Python编程>> Python实现批量转换文件编码的方法

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

作者:yak  发布时间:2023-06-02 20:03:49 

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

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com