Python批量转换文件编码格式


Posted in Python onMay 17, 2015

自己写的方法,适用于linux,

#!/usr/bin/python
#coding=utf-8
import sys
import os, os.path
import dircache
import commands
def add(x,y):
 return x*y

def trans(dirname):
 lis = dircache.opendir(dirname)
 for a in lis:
af=dirname+os.sep+a
## print af
 if os.path.isdir(af):
## print af
trans(af)
else:
 ## print af+"encoding="+fi.name
 ft = commands.getoutput('file -i '+af)
## print ft
 if a.find('.htm')==-1 and a.find('.xml')==-1 and ft.find('text/')!=-1 and ft.find('iso-8859')!=-1:
 print 'gbk'+ft+">"+af
 commands.getoutput('iconv -ficonv -f gbk -t utf-8 -c -o'+""+af+""+af)

trans(os.getcwd())

py2.6以下版本可用代码

import os,sys 
 
def convert( filename, in_enc = "GBK", out_enc="UTF8" ): 
  try: 
    print "convert " + filename, 
    content = open(filename).read() 
    new_content = content.decode(in_enc).encode(out_enc) 
    open(filename, 'w').write(new_content) 
    print " done" 
  except: 
    print " error" 
 
def explore(dir): 
  for root, dirs, files in os.walk(dir): 
    for file in files: 
      path = os.path.join(root, file) 
      convert(path) 
 
def main(): 
  for path in sys.argv[1:]: 
    if os.path.isfile(path): 
      convert(path) 
    elif os.path.isdir(path): 
      explore(path) 
 
if __name__ == "__main__": 
  main()

支持py3.1的版本

import os
import sys
import codecs
#该程序用于将目录下的文件从指定格式转换到指定格式,默认的是GBK转到utf-8 
def convert(file,in_enc="GBK",out_enc="UTF-8"):
try:
print ("convert " +file)
f=codecs.open(file,'r',in_enc)
new_content=f.read()
codecs.open(file,'w',out_enc).write(new_content)
#print (f.read())
except IOError as err:
print ("I/O error: {0}".format(err))


def explore(dir):
for root,dirs,files in os.walk(dir):
for file in files:
path=os.path.join(root,file)
convert(path)

def main():
for path in sys.argv[1:]:
if(os.path.isfile(path)):
convert(path)
elif os.path.isdir(path):
explore(path)

if __name__=="__main__":
main()

以上所述就是本文 的全部内容了,希望大家能够喜欢。

Python 相关文章推荐
PyMongo安装使用笔记
Apr 27 Python
通过实例浅析Python对比C语言的编程思想差异
Aug 30 Python
老生常谈python之鸭子类和多态
Jun 13 Python
K-近邻算法的python实现代码分享
Dec 09 Python
利用python如何处理百万条数据(适用java新手)
Jun 06 Python
win10环境下配置vscode python开发环境的教程详解
Oct 16 Python
python实现批量文件重命名
Oct 31 Python
python的json中方法及jsonpath模块用法分析
Dec 06 Python
python 通过邮件控制实现远程控制电脑操作
Mar 16 Python
python模拟实现分发扑克牌
Apr 22 Python
Python-for循环的内部机制
Jun 12 Python
python UIAutomator2使用超详细教程
Feb 19 Python
Python实现批量下载文件
May 17 #Python
python抓取最新博客内容并生成Rss
May 17 #Python
Python实现遍历数据库并获取key的值
May 17 #Python
Python对列表排序的方法实例分析
May 16 #Python
python中base64加密解密方法实例分析
May 16 #Python
python中threading超线程用法实例分析
May 16 #Python
python实现合并两个数组的方法
May 16 #Python
You might like
PHP 文件扩展名 获取函数
2009/06/03 PHP
LotusPhp笔记之:Logger组件的使用方法
2013/05/06 PHP
基于php中使用excel的简单介绍
2013/08/02 PHP
php 魔术方法详解
2014/11/11 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
PHP实现上传多文件示例代码
2017/02/20 PHP
一段实时更新的时间代码
2006/07/07 Javascript
jquery下onpropertychange事件的绑定方法
2010/08/01 Javascript
用Jquery实现滚动新闻
2014/02/12 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
AngularJS equal比较对象实例详解
2016/09/14 Javascript
JavaScript重定向URL参数的两种方法小结
2016/10/19 Javascript
H5图片压缩与上传实例
2017/04/21 Javascript
快速使用node.js进行web开发详解
2017/04/26 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
2017/09/13 Javascript
vue项目中v-model父子组件通信的实现详解
2017/12/10 Javascript
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
微信小程序中的列表切换功能实例代码详解
2020/06/09 Javascript
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
老生常谈进程线程协程那些事儿
2017/07/24 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
Python循环结构的应用场景详解
2019/07/11 Python
下载官网python并安装的步骤详解
2019/10/12 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
2020/12/17 Python
比利时买床:Beter Bed
2017/12/06 全球购物
全球立体声:World Wide Stereo
2018/09/29 全球购物
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
求职推荐信范文
2013/12/01 职场文书
四年的大学生生活自我评价
2013/12/09 职场文书
学生请假条
2014/04/11 职场文书
国庆横幅标语
2014/10/08 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
班主任2015新年寄语
2014/12/08 职场文书