DOIFOR技术Python批量修改文件字符集
DOIFOR技术Python批量修改文件字符集

Python批量修改文件字符集

技术

某些工具只能支持一种字符集格式的文件,特别是遇到中文的情况下。

我司的数据库脚本执行工具,仅支持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()

这里,我想着重介绍的是chardet包,这个工具可以用于预测文本字符类型。使用这个包的时候,我就想到曾今在写爬虫的时候,总是人工的判断某站点的字符集,有了这个工具完全可以实现站点字符集自动判断。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注