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 相关文章推荐
py中的目录与文件判别代码
Jul 16 Python
python实现监控windows服务并自动启动服务示例
Apr 17 Python
简单学习Python多进程Multiprocessing
Aug 29 Python
Python简单计算给定某一年的某一天是星期几示例
Jun 27 Python
浅述python中深浅拷贝原理
Sep 18 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
Oct 11 Python
python 图像平移和旋转的实例
Jan 10 Python
pytorch 自定义数据集加载方法
Aug 18 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
Feb 27 Python
python如何写出表白程序
Jun 01 Python
PyCharm MySQL可视化Database配置过程图解
Jun 09 Python
python 多线程共享全局变量的优劣
Sep 24 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 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
js实现浏览器的各种菜单命令比如打印、查看源文件等等
2013/10/24 Javascript
为指定的元素添加遮罩层的示例代码
2014/01/15 Javascript
Javascript常用字符串判断函数代码分享
2014/12/08 Javascript
JavaScript控制网页层收起和展开效果的方法
2015/04/15 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
基于javascript实现图片切换效果
2016/04/17 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
微信小程序 教程之wxapp视图容器 swiper
2016/10/19 Javascript
ES6概念 Symbol toString()方法
2016/12/25 Javascript
jQuery表格的维护和删除操作
2017/02/03 Javascript
js脚本编写简单刷票投票系统
2017/06/27 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
使用微信SDK自定义分享的方法
2019/07/03 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
Python利用前序和中序遍历结果重建二叉树的方法
2016/04/27 Python
Python 安装setuptools和pip工具操作方法(必看)
2017/05/22 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
Django框架表单操作实例分析
2019/11/04 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
Pytorch的mean和std调查实例
2020/01/02 Python
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
美国最好的钓鱼、狩猎和划船装备商店:Bass Pro Shops
2018/12/02 全球购物
CHARLES & KEITH台湾官网:新加坡时尚品牌
2019/07/30 全球购物
软件测试企业面试试卷
2016/07/13 面试题
运动会致辞稿50字
2014/02/04 职场文书
买卖车协议书
2014/04/21 职场文书
七一建党节演讲稿
2014/09/11 职场文书
2014三年级班主任工作总结
2014/12/05 职场文书
给朋友的赠语
2015/06/23 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书
初中物理教学反思
2016/02/19 职场文书
Django cookie和session的应用场景及如何使用
2021/04/29 Python