Python 对目录中的文件进行批量转码(GBK>UTF8)
2015-04-23 15:26
1271 查看
通过python实现对文件转码,其实处理很简单:
1.打开读取文件内容到一个字符串变量中,把gbk编码文件,对字符串进行decode转换成unicode
2.然后使用encode转换成utf-8格式。
3.最后把字符串重新写入到文件中即可。
在对文件进行转码之前,需要先对文件的编码格式进行校验,如果已经是utf-8格式的文件,不做decode转码处理,否则会报错。
因此这里使用chardet包进行返回文件的编码格式。
使用 pip install chardet 安装即可引入使用。
脚本如下:
convergbk2utf.py
执行
python convergbk2utf.py d:\test
可以讲d:\test目录中的所有文件,转码成utf8.
PS:想要做的容错性更高一下的话,可以对要转码的文件类型再加个判断进行过滤,对filename通过分析,只转换你想要转换的文件类型即可。
来自为知笔记(Wiz)
1.打开读取文件内容到一个字符串变量中,把gbk编码文件,对字符串进行decode转换成unicode
2.然后使用encode转换成utf-8格式。
3.最后把字符串重新写入到文件中即可。
在对文件进行转码之前,需要先对文件的编码格式进行校验,如果已经是utf-8格式的文件,不做decode转码处理,否则会报错。
因此这里使用chardet包进行返回文件的编码格式。
使用 pip install chardet 安装即可引入使用。
脚本如下:
convergbk2utf.py
# -*- coding:utf-8 -*- __author__ = 'tsbc' import os,sys import chardet def convert( filename, in_enc = "GBK", out_enc="UTF8" ): try: print "convert " + filename, content = open(filename).read() result = chardet.detect(content)#通过chardet.detect获取当前文件的编码格式串,返回类型为字典类型 coding = result.get('encoding')#获取encoding的值[编码格式] if coding != 'utf-8':#文件格式如果不是utf-8的时候,才进行转码 print coding + "to utf-8!", new_content = content.decode(in_enc).encode(out_enc) open(filename, 'w').write(new_content) print " done" else: print coding except IOError,e: # 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()
执行
python convergbk2utf.py d:\test
可以讲d:\test目录中的所有文件,转码成utf8.
PS:想要做的容错性更高一下的话,可以对要转码的文件类型再加个判断进行过滤,对filename通过分析,只转换你想要转换的文件类型即可。
来自为知笔记(Wiz)
相关文章推荐
- Linux下gbk-utf8文件和目录下所有文件转码
- python对指定目录下文件进行批量重命名的方法
- 将批量的gbk的乱码文件转换到utf8
- 项目总结(一)------Python对文件和目录进行操作 (file对象/os/os.path/shutil 模块)
- Python实例31[批量对目录下文件重命名]
- 批量把文件编码由GBK转为UTF8
- 批量转换src目录下的所有文件内容由GBK到UTF8
- python脚本-指定目录针对特定后缀名文件进行文本内容搜索
- python下需要对指定格式的文件进行批量删除的方法
- 编写python脚本-->批量下载淘宝 2012年ADC技术嘉年华PDF文件
- Python批量对目录下文件重命名
- Python批量修改指定目录下的文件名和文件内容
- 批量将目录下所有文件进行 dos/unix 格式转换
- java代码实现根据JSON文件进行批量文件重命名或者改目录结构
- python之批量重命名目录文件
- Python遍历目录下所有文件的最后一行进行判断若错误及时邮件报警-案例
- linux 利用find进行批量删除CVS目录和文件的方法
- python paramiko 多线程批量执行指令及批量上传文件和目录
- 用python对指定目录下的所有文件(夹)大小进行排序
- Python脚本:对文件进行批量重命名