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 判断自定义对象类型
Mar 21 Python
Python网络爬虫出现乱码问题的解决方法
Jan 05 Python
Python+matplotlib绘制不同大小和颜色散点图实例
Jan 19 Python
Python+matplotlib实现华丽的文本框演示代码
Jan 22 Python
详谈python3 numpy-loadtxt的编码问题
Apr 29 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
Jul 13 Python
Pycharm取消py脚本中SQL识别的方法
Nov 29 Python
解决pycharm运行出错,代码正确结果不显示的问题
Nov 30 Python
django框架基于queryset和双下划线的跨表查询操作详解
Dec 11 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
Apr 17 Python
Django URL参数Template反向解析
Nov 24 Python
python包的导入方式总结
Mar 02 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
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
phpinfo 系统查看参数函数代码
2009/06/05 PHP
PHP模块memcached使用指南
2014/12/08 PHP
PHP快速排序算法实现的原理及代码详解
2019/04/03 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
javascript显示隐藏层比较不错的方法分析
2008/09/30 Javascript
javascript垃圾收集机制与内存泄漏详细解析
2013/11/11 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
利用jQuery实现可以编辑的表格
2014/05/26 Javascript
网页实时显示服务器时间和javscript自运行时钟
2014/06/09 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
点击按钮出现60秒倒计时的简单js代码(推荐)
2016/06/07 Javascript
浅谈Vue.js
2017/03/02 Javascript
微信小程序template模板实例详解
2017/10/27 Javascript
微信小程序实现图片放大预览功能
2020/10/22 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
javascript实现QQ空间相册展示源码
2017/12/12 Javascript
详解微信JS-SDK选择图片遇到的坑
2018/08/15 Javascript
nodejs aes 加解密实例
2018/10/10 NodeJs
vue实现日历备忘录功能
2020/09/24 Javascript
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
2020/07/11 Javascript
npm全局环境变量配置详解
2020/12/15 Javascript
Python Web开发模板引擎优缺点总结
2014/05/06 Python
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
使用Python对IP进行转换的一些操作技巧小结
2015/11/09 Python
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
Python装饰器语法糖
2019/01/02 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
个人自荐材料
2014/05/23 职场文书
大专生自我鉴定怎么写
2014/09/16 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android