某些工具只能支持一种字符集格式的文件,特别是遇到中文的情况下。
我司的数据库脚本执行工具,仅支持gb2312格式的文件。但是我们(程序员)经常使用的工具生成出来的字符集就是utf-8,这导致了在执行脚本的时候大量报错。
如果是一个文件或很少的几个文件还好,直接使用编辑工具例如(sublime)就可以手动更换字符集了。但是我司的脚本文件成百上千个,直接导致我对手动修改字符集丧失了信心。
秉承能自动就不手动的原则,于是就有了下面的代码:
import chardet
import os
## 用于批量转换文件字符集
root = 'D:/Document/src/'
target = 'D:/Document/target/'
for src in os.listdir(root):
src_file = open(root+src, "rb")
data = src_file.read()
encode = chardet.detect(data).get('encoding')
src_file.close()
src_file = open(root+src, "r", encoding=encode)
target_file = open(target+src, "w", encoding="gb2312")
for line in src_file.readlines():
target_file.write(line)
src_file.close()
target_file.close()
这里,我想着重介绍的是charde
t包,这个工具可以用于预测文本字符类型。使用这个包的时候,我就想到曾今在写爬虫的时候,总是人工的判断某站点的字符集,有了这个工具完全可以实现站点字符集自动判断。