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中集合的内建函数和内建方法学习教程
Aug 19 Python
简单谈谈python中的lambda表达式
Jan 19 Python
python批量赋值操作实例
Oct 22 Python
python绘制热力图heatmap
Mar 23 Python
pytorch对可变长度序列的处理方法详解
Dec 08 Python
python生成每日报表数据(Excel)并邮件发送的实例
Feb 03 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
Feb 12 Python
Python JSON格式数据的提取和保存的实现
Mar 22 Python
Jupyter加载文件的实现方法
Apr 14 Python
Python延迟绑定问题原理及解决方案
Aug 04 Python
Python爬虫之爬取某文库文档数据
Apr 21 Python
Python破解极验滑动验证码详细步骤
May 21 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插件 HTMLPurifier HTML解析器
2013/07/01 PHP
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
php中利用str_pad函数生成数字递增形式的产品编号
2013/09/30 PHP
PHP循环结构实例讲解
2014/02/10 PHP
php中二维数组排序问题方法详解
2015/08/28 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
javascript第一课
2007/02/27 Javascript
jquery 操作单选框,复选框,下拉列表实现代码
2009/10/27 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
2018/03/06 Javascript
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
2020/07/30 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
详解Python编程中基本的数学计算使用
2016/02/04 Python
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
在python中使用pyspark读写Hive数据操作
2020/06/06 Python
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
后勤部经理岗位职责
2014/02/23 职场文书
消防安全责任书
2014/04/14 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
商业计算机应用专业自荐书
2014/06/09 职场文书
机械操作工岗位职责
2014/08/08 职场文书
怀孕辞职信怎么写
2015/02/28 职场文书
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android
MySql数据库 查询时间序列间隔
2022/05/11 MySQL