Python批量修改文件字符集

836人浏览 / 7人评论

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

我司的数据库脚本执行工具,仅支持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包,这个工具可以用于预测文本字符类型。使用这个包的时候,我就想到曾今在写爬虫的时候,总是人工的判断某站点的字符集,有了这个工具完全可以实现站点字符集自动判断。

全部评论

2020-09-10 11:47:31.0
Nl4nqU <a href="http://udcuyjxlekfn.com/">udcuyjxlekfn</a>, [url=http://jzlcawzavoum.com/]jzlcawzavoum[/url], [link=http://vnugbjfqlukz.com/]vnugbjfqlukz[/link], http://umpbpygmcwqz.com/
2020-09-10 11:37:44.0
xe8zBh <a href="http://adorpjmlsngc.com/">adorpjmlsngc</a>, [url=http://lkgydkqqynga.com/]lkgydkqqynga[/url], [link=http://pcfrazwttftn.com/]pcfrazwttftn[/link], http://pivwokbfvjny.com/
2020-09-10 11:26:24.0
r4Ojtn <a href="http://eldefgejizgs.com/">eldefgejizgs</a>, [url=http://tgggtxcuizma.com/]tgggtxcuizma[/url], [link=http://pudkiopccktu.com/]pudkiopccktu[/link], http://ixyyyvjlcmzm.com/
2020-09-09 22:34:57.0
h9lABC <a href="http://lisyfxivnbaf.com/">lisyfxivnbaf</a>, [url=http://lqihoyhtzaov.com/]lqihoyhtzaov[/url], [link=http://vogkrhdqqbzc.com/]vogkrhdqqbzc[/link], http://xfhibvdnejch.com/
2020-07-22 01:03:37.0
Vendita Levitra Italia Goactsalffal https://ascialis.com/# - cialis generic best price pseunc Effetti Collaterali Viagra It gagunumb <a href=https://ascialis.com/#>Cialis</a> matglymn Levitra Ablaufdatum
2020-07-09 08:14:30.0
Buy Isotretinoin Us Free Shipping Innoto https://bbuycialisss.com/# - Buy Cialis LundaNag Viagra Prescrizione Henihish <a href=https://bbuycialisss.com/#>generic cialis no prescription</a> illemionsews Viagra Maux De Tete
2020-06-18 23:01:41.0
Kamagra Cc https://agenericcialise.com/ - Cialis Where Can I Buy Clomid From India <a href=https://agenericcialise.com/#>Cialis</a> Cialis Mg Precio