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删除列表内容
Aug 04 Python
Python的MongoDB模块PyMongo操作方法集锦
Jan 05 Python
关于numpy中np.nonzero()函数用法的详解
Feb 07 Python
详解python中的文件与目录操作
Jul 11 Python
详解Python 模拟实现生产者消费者模式的实例
Aug 10 Python
python+tkinter编写电脑桌面放大镜程序实例代码
Jan 16 Python
详解用TensorFlow实现逻辑回归算法
May 02 Python
使用python将图片格式转换为ico格式的示例
Oct 22 Python
运用Python的webbrowser实现定时打开特定网页
Feb 21 Python
Python实现遗传算法(二进制编码)求函数最优值方式
Feb 11 Python
python如何导出微信公众号文章方法详解
Aug 31 Python
如何用python开发Zeroc Ice应用
Jan 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基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
2014/07/11 PHP
PHP curl伪造IP地址和header信息代码实例
2015/04/27 PHP
简单的邮箱登陆的提示效果类似于yahoo邮箱
2014/02/26 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
2015/05/16 Javascript
JavaScript实现动态删除列表框值的方法
2015/08/12 Javascript
js弹出对话框方式小结
2015/11/17 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
理解javascript async的用法
2017/08/22 Javascript
bootstrap fileinput实现文件上传功能
2017/08/23 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
2019/04/10 Javascript
教你如何用Node实现API的转发(某音乐)
2019/09/20 Javascript
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
使用httplib模块来制作Python下HTTP客户端的方法
2015/06/19 Python
深入理解python中的浅拷贝和深拷贝
2016/05/30 Python
Python实现一个简单的验证码程序
2017/11/03 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
从django的中间件直接返回请求的方法
2018/05/30 Python
python自定义函数实现最大值的输出方法
2019/07/09 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
django修改models重建数据库的操作
2020/03/31 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
Python3中的tuple函数知识点讲解
2021/01/03 Python
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
HTML5实现预览本地图片
2016/02/17 HTML / CSS
营业经理岗位职责
2013/11/10 职场文书
DIY蛋糕店的创业计划书范文
2013/12/26 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
答谢词范文
2015/01/05 职场文书
电工实训心得体会
2016/01/14 职场文书
《去年的树》教学反思
2016/02/18 职场文书
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript
Java中PriorityQueue实现最小堆和最大堆的用法
2021/06/27 Java/Android
ipad隐藏软件app图标方法
2022/04/19 数码科技