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的id()函数介绍
Feb 10 Python
python轻松实现代码编码格式转换
Mar 26 Python
浅谈Python实现Apriori算法介绍
Dec 20 Python
python使用代理ip访问网站的实例
May 07 Python
python把数组中的数字每行打印3个并保存在文档中的方法
Jul 17 Python
解决PyCharm import torch包失败的问题
Oct 13 Python
Python中的相关分析correlation analysis的实现
Aug 29 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
Oct 21 Python
python读取csv文件指定行的2种方法详解
Feb 13 Python
详解Python中import机制
Sep 11 Python
python 录制系统声音的示例
Dec 21 Python
python库Tsmoothie模块数据平滑化异常点抓取
Jun 10 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
IP138 IP地址查询小偷实现代码
2010/02/15 PHP
php接口与接口引用的深入解析
2013/08/09 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
2014/08/25 PHP
迁移PHP版本到PHP7
2015/02/06 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
js 数组操作代码集锦
2009/04/28 Javascript
基于jQuery实现点击同时更改两个iframe的网址
2010/07/01 Javascript
js防止表单重复提交实现代码
2012/09/05 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
2013/01/11 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
Jquery中offset()和position()的区别分析
2015/02/05 Javascript
JS轮播图中缓动函数的封装
2020/11/25 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
ng-zorro-antd 入门初体验
2018/12/03 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
2019/07/13 Javascript
利用JS如何获取form表单数据
2019/12/19 Javascript
python从sqlite读取并显示数据的方法
2015/05/08 Python
python微信公众号开发简单流程
2018/03/23 Python
Django后台获取前端post上传的文件方法
2018/05/28 Python
django+mysql的使用示例
2018/11/23 Python
Python基于Serializer实现字段验证及序列化
2020/11/04 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
美国在线家装零售商:Build.com
2016/09/02 全球购物
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
HR喜欢的自荐信格式
2013/10/08 职场文书
应届毕业生个人自荐信范文
2013/11/30 职场文书
一名毕业生的自我鉴定
2013/12/04 职场文书
烟台的海导游词
2015/02/02 职场文书
超市员工管理制度
2015/08/06 职场文书
2019年教师节:送给所有老师的祝福语
2019/09/05 职场文书
python开发人人对战的五子棋小游戏
2022/05/02 Python