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

yipeiwu_com5年前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实现baidu hi自动登录的代码

复制代码 代码如下:# _*_ coding:utf-8 _*_# name login_baidu.pyimport urllib,urllib2,httplib,cookielibd...

Spring实战之使用util:命名空间简化配置操作示例

本文实例讲述了Spring使用util:命名空间简化配置操作。分享给大家供大家参考,具体如下: 一 配置 <?xml version="1.0" encoding="G...

python中matplotlib的颜色及线条控制的示例

python中matplotlib的颜色及线条控制的示例

下次用python画图的时候选色选点都可以直接参考这边,牛逼!分享给大家,也给自己留个笔记。 参考网址: http://stackoverflow.com/questions/22408...

python日志模块logbook使用方法

python自带了日志模块logging,可以用来记录程序运行过程中的日志信息。同时python还有logbook模块用来取代logging模块,在很多的项目中logbook模块使用也是...

Python3实现的旋转矩阵图像算法示例

本文实例讲述了Python3实现的旋转矩阵图像算法。分享给大家供大家参考,具体如下: 问题: 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 方案一:先...