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编程中一些重用与缩减的建议
Apr 14 Python
python3库numpy数组属性的查看方法
Apr 17 Python
python自动查询12306余票并发送邮箱提醒脚本
May 21 Python
python实现决策树ID3算法的示例代码
May 30 Python
python计算两个地址之间的距离方法
Jun 09 Python
替换python字典中的key值方法
Jul 06 Python
Django JWT Token RestfulAPI用户认证详解
Jan 23 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
Aug 12 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
Sep 25 Python
如何解决安装python3.6.1失败
Jul 01 Python
python opencv角点检测连线功能的实现代码
Nov 24 Python
python模拟浏览器 使用selenium进入好友QQ空间并留言
Apr 12 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
laravel自定义分页的实现案例offset()和limit()
2019/10/15 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
对联广告js flash激活
2006/10/19 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
js原型链与继承解析(初体验)
2016/05/09 Javascript
浅析jquery数组删除指定元素的方法:grep()
2016/05/19 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
JS在浏览器中解析Base64编码图像
2017/02/09 Javascript
javascript实现的图片预览功能
2017/03/25 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
vue过渡和animate.css结合使用详解
2017/06/14 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
2017/09/20 jQuery
ES6知识点整理之函数数组参数的默认值及其解构应用示例
2019/04/17 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
2020/08/14 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
2020/10/31 Javascript
vue打开其他项目页面并传入数据详解
2020/11/25 Vue.js
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
Python中的多重装饰器
2015/04/11 Python
python3抓取中文网页的方法
2015/07/28 Python
教你用Python写安卓游戏外挂
2018/01/11 Python
PyQt5每天必学之工具提示功能
2018/04/19 Python
python使用插值法画出平滑曲线
2018/12/15 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
jupyter notebook的安装与使用详解
2020/05/18 Python
java关于string最常出现的面试题整理
2021/01/18 Python
日本即尚网:JSHOPPERS.com(支持中文)
2019/12/03 全球购物
法律专业推荐信范文
2013/11/29 职场文书
2014年教师培训的自我评价
2014/01/03 职场文书
新闻学专业个人求职信写作
2014/02/04 职场文书
八项规定整改方案
2014/02/21 职场文书
《识字五》教学反思
2014/03/01 职场文书
2014年社区妇联工作总结
2014/12/02 职场文书
出国留学自荐信模板
2015/03/06 职场文书
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python