我是靠谱客的博主 繁荣猫咪,最近开发中收集的这篇文章主要介绍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: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实现批量转换文件编码的方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部