加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

批量转换文件编码

发布时间: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】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读