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实现simhash算法实例
Apr 25 Python
使用IronPython把Python脚本集成到.NET程序中的教程
Mar 31 Python
python实现将汉字转换成汉语拼音的库
May 05 Python
python和shell获取文本内容的方法
Jun 05 Python
详解Django定时任务模块设计与实践
Jul 24 Python
解决python 3 urllib 没有 urlencode 属性的问题
Aug 22 Python
利用Python脚本实现自动刷网课
Feb 03 Python
python实现逆滤波与维纳滤波示例
Feb 26 Python
Django User 模块之 AbstractUser 扩展详解
Mar 11 Python
Python中remove漏删和索引越界问题的解决
Mar 18 Python
python文件排序的方法总结
Sep 13 Python
python关于倒排列的知识点总结
Oct 13 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去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
Look And Say 序列php实现代码
2011/05/22 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
2015/03/05 PHP
Zend Framework数据库操作技巧总结
2017/02/18 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
javascript中的对象和数组的应用技巧
2007/01/07 Javascript
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
在jQuery ajax中按钮button和submit的区别分析
2012/10/07 Javascript
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
Jquery 数组操作大全个人总结
2013/11/13 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
JS定义类的六种方式详解
2016/05/12 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
Vue.js实战之利用vue-router实现跳转页面
2017/04/01 Javascript
微信小程序 标签传入数据
2017/05/08 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
2020/02/21 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
用Python进行一些简单的自然语言处理的教程
2015/03/31 Python
python django 增删改查操作 数据库Mysql
2017/07/27 Python
pyqt 实现在Widgets中显示图片和文字的方法
2019/06/13 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
numpy创建单位矩阵和对角矩阵的实例
2019/11/29 Python
python多线程使用方法实例详解
2019/12/30 Python
W3C公布最新的HTML5标准草案
2008/10/17 HTML / CSS
谷歌浏览器小字体处理方案即12px以下字体
2013/12/17 HTML / CSS
文秘专业自荐信
2013/10/14 职场文书
企业员工爱岗敬业演讲稿
2014/08/26 职场文书
公务员考察材料
2014/12/23 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
前端JavaScript大管家 package.json
2021/11/02 Javascript