Python实现批量转换文件编码的方法

 更新时间:2015年07月28日 12:17:40   作者:yak  
这篇文章主要介绍了Python实现批量转换文件编码的方法,涉及Python针对文件的遍历及编码转换实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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中静态方法,类方法,属性方法使用方法

    这篇文章主要介绍了Python中静态方法,类方法,属性方法使用方法,文章围绕主题的相关资料展开详细内容,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • Django开发中使用Ueditor上传图片遇到的坑及解决

    Django开发中使用Ueditor上传图片遇到的坑及解决

    在Django开发中使用Ueditor上传图片时,可能会遇到后端配置不正确的问题,建议在实例化Ueditor后加上serverUrl,这可以在Chrome的F12工具中查看请求的后端配置项,此外,如果需要修改上传路径,可以在配置文件中更改路径,并调整view.py中的代码来管理上传文件
    2024-09-09
  • 深入探讨Python中弱引用机制与应用

    深入探讨Python中弱引用机制与应用

    在Python编程中,弱引用(Weak Reference)是一种特殊的引用方式,本文将深入探讨Python的弱引用机制,介绍其用法、原理及实际应用场景,希望对大家有所帮助
    2024-03-03
  • Python+Matplotlib绘制小提琴图的示例代码

    Python+Matplotlib绘制小提琴图的示例代码

    小提琴图 (Violin Plot) 类似纺锤,是一种用来显示数据分布和概率密度的图形,本文为大家介绍了Matplotlib绘制小提琴图的函数源码,需要的可以参考一下
    2023-06-06
  • python 虚拟环境的创建与使用方法

    python 虚拟环境的创建与使用方法

    本文先介绍虚拟环境的基础知识以及使用方法,然后再深入介绍虚拟环境背后的工作原理,需要的朋友可以参考下
    2021-06-06
  • 在CMD命令行中运行python脚本的方法

    在CMD命令行中运行python脚本的方法

    今天小编就为大家分享一篇在CMD命令行中运行python脚本的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python通过Pillow实现图片对比

    Python通过Pillow实现图片对比

    这篇文章主要介绍了Python Pillow实现图片对比,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Python从csv文件中读取数据及提取数据的方法

    Python从csv文件中读取数据及提取数据的方法

    这篇文章主要介绍了Python从csv文件中读取数据并提取数据的方法,文中通过多种方法给大家讲解获取指定列的数据,并存入一个数组中,每种方法通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-11-11
  • python区块及区块链的开发详解

    python区块及区块链的开发详解

    这篇文章主要介绍了python区块及区块链的开发详解的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 深入理解Pytorch微调torchvision模型

    深入理解Pytorch微调torchvision模型

    PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。它主要由Facebookd的人工智能小组开发,不仅能够 实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架如TensorFlow都不支持的
    2021-11-11

最新评论