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科学计算环境推荐——Anaconda
Jun 30 Python
python使用range函数计算一组数和的方法
May 07 Python
微信跳一跳自动运行python脚本
Jan 08 Python
Selenium(Python web测试工具)基本用法详解
Aug 10 Python
对Python之gzip文件读写的方法详解
Feb 08 Python
简单了解django缓存方式及配置
Jul 19 Python
pygame实现打字游戏
Feb 19 Python
基于Django OneToOneField和ForeignKey的区别详解
Mar 30 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
Apr 02 Python
使用K.function()调试keras操作
Jun 17 Python
python实现图片素描效果
Sep 26 Python
python区块链持久化和命令行接口实现简版
May 25 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抽象工厂模式(Elgg)
2010/03/21 PHP
php制作中间带自己定义图片二维码的方法
2014/01/27 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
thinkPHP数据库增删改查操作方法实例详解
2016/12/06 PHP
浅谈PHP进程管理
2019/03/08 PHP
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
2012/05/23 Javascript
Javascript中的for in循环和hasOwnProperty结合使用
2013/06/05 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
使用javascript控制cookie显示和隐藏背景图
2014/02/12 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
JavaScript+CSS无限极分类效果完整实现方法
2015/12/22 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
angular-cli修改端口号【angular2】
2017/04/19 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
vue中的event bus非父子组件通信解析
2017/10/27 Javascript
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
python解析文件示例
2014/01/23 Python
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
Python max内置函数详细介绍
2016/11/17 Python
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
python3实现mysql导出excel的方法
2019/07/31 Python
python实现UDP协议下的文件传输
2020/03/20 Python
新秀丽拉杆箱美国官方网站:Samsonite美国
2016/07/25 全球购物
可靠的数据流传输TCP
2016/03/15 面试题
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
办公室副主任职责范本
2014/03/08 职场文书
机关保密承诺书
2014/06/03 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书
OpenStack虚拟机快照和增量备份实现方法
2022/04/04 Servers
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python