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 相关文章推荐
解析Python中while true的使用
Oct 13 Python
python控制台中实现进度条功能
Nov 10 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
Jul 06 Python
利用python3随机生成中文字符的实现方法
Nov 24 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
Jun 11 Python
Python线程下使用锁的技巧分享
Sep 13 Python
在Python中os.fork()产生子进程的例子
Aug 08 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
Jan 15 Python
python:目标检测模型预测准确度计算方式(基于IoU)
Jan 18 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
Feb 14 Python
python变量的作用域是什么
May 26 Python
python实现简单的名片管理系统
Apr 26 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
file_get_contents("php://input", "r")实例介绍
2013/07/01 PHP
ThinkPHP采用实现三级循环代码实例
2014/07/18 PHP
php根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
Prototype PeriodicalExecuter对象 学习
2009/07/19 Javascript
js使用ajax读博客rss示例
2014/05/06 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
2015/01/20 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
js console.log打印对像与数组用法详解
2016/01/21 Javascript
BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面
2016/08/01 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
2016/09/12 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
2016/12/13 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
微信小程序实现图片懒加载的示例代码
2017/12/13 Javascript
详解JS函数stack size计算方法
2018/06/18 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
python 文件查找及内容匹配方法
2018/10/25 Python
详解python pandas 分组统计的方法
2019/07/30 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
python如何查看网页代码
2020/06/07 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
阿玛尼美妆加拿大官方商城:Giorgio Armani Beauty加拿大
2017/10/24 全球购物
职高毕业生自我鉴定
2013/10/21 职场文书
机械专业求职信
2014/05/25 职场文书
企业员工集体活动方案
2014/08/17 职场文书
停车位租赁协议书
2014/09/24 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
春节晚会开场白
2015/05/29 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
2016新教师岗前培训心得体会
2016/01/08 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
Javascript中async与await的捕捉错误详解
2022/03/03 Javascript