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


Posted in Python onJuly 28, 2015

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
python中执行shell命令的几个方法小结
Sep 18 Python
python之从文件读取数据到list的实例讲解
Apr 19 Python
python list转矩阵的实例讲解
Aug 04 Python
使用Python实现租车计费系统的两种方法
Sep 29 Python
pandas 条件搜索返回列表的方法
Oct 30 Python
在python中bool函数的取值方法
Nov 01 Python
Python 使用多属性来进行排序
Sep 01 Python
Python lambda表达式filter、map、reduce函数用法解析
Sep 11 Python
wxPython实现整点报时
Nov 18 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
Jul 14 Python
python PIL模块的基本使用
Sep 29 Python
Python使用海龟绘图实现贪吃蛇游戏
Jun 18 Python
Python中subprocess的简单使用示例
Jul 28 #Python
Python中文竖排显示的方法
Jul 28 #Python
Python中的getopt函数使用详解
Jul 28 #Python
Python3访问并下载网页内容的方法
Jul 28 #Python
python3抓取中文网页的方法
Jul 28 #Python
python列表操作之extend和append的区别实例分析
Jul 28 #Python
python创建列表并给列表赋初始值的方法
Jul 28 #Python
You might like
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
浅析PHP echo 和 print 语句
2020/06/30 PHP
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
2011/01/27 Javascript
JS可以控制样式的名称写法一览
2014/01/16 Javascript
纯JS实现旋转图片3D展示效果
2015/04/12 Javascript
举例讲解JavaScript中关于对象操作的相关知识
2015/11/16 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
2017/01/13 Javascript
vue判断input输入内容全是空格的方法
2018/03/02 Javascript
JS数组去重常用方法实例小结【4种方法】
2018/05/28 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
python基础教程之五种数据类型详解
2017/01/12 Python
详解Python开发中如何使用Hook技巧
2017/11/01 Python
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
python中aioysql(异步操作MySQL)的方法
2019/04/11 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
Python中字符串List按照长度排序
2019/07/01 Python
详解Python的三种拷贝方式
2020/02/11 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
基于HTML5的WebSocket的实例代码
2018/08/15 HTML / CSS
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
信息与计算科学专业推荐信
2014/02/23 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
幼儿园标语大全
2014/06/19 职场文书
团日活动总结怎么写
2014/06/25 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
大三学年自我鉴定范文(3篇)
2014/09/28 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
上课迟到检讨书范文
2015/05/06 职场文书
放飞理想主题班会
2015/08/14 职场文书
2016年寒假见闻
2015/10/10 职场文书
springboot项目以jar包运行的操作方法
2021/06/30 Java/Android