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将字符串转换成数组的方法
Apr 29 Python
浅谈Python 中整型对象的存储问题
May 16 Python
浅谈Python实现2种文件复制的方法
Jan 19 Python
pandas 小数位数 精度的处理方法
Jun 09 Python
详解Numpy中的广播原则/机制
Sep 20 Python
python3实现名片管理系统
Nov 29 Python
详解Python传入参数的几种方法
May 16 Python
对python3 Serial 串口助手的接收读取数据方法详解
Jun 12 Python
python 一个figure上显示多个图像的实例
Jul 08 Python
Python request操作步骤及代码实例
Apr 13 Python
Python matplotlib可视化实例解析
Jun 01 Python
Python 防止死锁的方法
Jul 29 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两种去掉数组重复值的方法比较
2014/06/19 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
PHP微信红包生成代码分享
2016/10/06 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
把input初始值不写value的具体实现方法
2013/07/04 Javascript
js获取php变量的实现代码
2013/08/10 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
Window.Open如何在同一个标签页打开
2014/06/20 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
javascript实现动态导入js与css等静态资源文件的方法
2015/07/25 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
javascript自执行函数
2017/02/10 Javascript
通过函数作用域和块级作用域看javascript的作用域链
2018/08/05 Javascript
使用axios发送post请求,将JSON数据改为form类型的示例
2019/10/31 Javascript
vue弹出框组件封装实例代码
2019/10/31 Javascript
JavaScript实现单点登录的示例
2020/09/23 Javascript
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
Python实现简单字典树的方法
2016/04/29 Python
python机器学习理论与实战(一)K近邻法
2021/01/28 Python
python基于物品协同过滤算法实现代码
2018/05/31 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
学生会个人自荐书范文
2014/02/12 职场文书
21岁生日感言
2014/02/27 职场文书
领导班子作风建设年个人整改措施
2014/09/29 职场文书
思想纪律作风整顿剖析材料
2014/10/11 职场文书
单位介绍信格式
2015/01/31 职场文书
2016年基层党组织公开承诺书
2016/03/25 职场文书
Python机器学习之KNN近邻算法
2021/05/14 Python
MYSQL(电话号码,身份证)数据脱敏的实现
2021/05/28 MySQL
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers
win10识别不了U盘怎么办 win10系统读取U盘失败的解决办法
2022/08/05 数码科技