加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

设置脚本以在Python中的纯文本文件中自动检测字符编码?

发布时间:2020-12-20 11:14:08 所属栏目:Python 来源:网络整理
导读:参见英文答案 How to determine the encoding of text?????????????????????????????????????8个 我已经设置了一个基本上在纯文本文档上进行大规模查找和替换的脚本. 目前,只要在脚本内部指定编码,它就可以使用ASCII,UTF-8和UTF-16(可能还有其他,但我只测试
参见英文答案 > How to determine the encoding of text?????????????????????????????????????8个
我已经设置了一个基本上在纯文本文档上进行大规模查找和替换的脚本.

目前,只要在脚本内部指定编码,它就可以使用ASCII,UTF-8和UTF-16(可能还有其他,但我只测试了这三个)编码文档(下面的示例代码指定了UTF) -16).

有没有办法让脚本自动检测输入文件中使用了哪些字符编码,并自动设置输出文件的字符编码与输入文件中使用的编码相同?

findreplace = [
('term1','term2'),]    

inF = open(infile,'rb')
    s=unicode(inF.read(),'utf-16')
    inF.close()

    for couple in findreplace:
        outtext=s.replace(couple[0],couple[1])
        s=outtext

    outF = open(outFile,'wb')
    outF.write(outtext.encode('utf-16'))
    outF.close()

谢谢!

解决方法

从链接J.F.塞巴斯蒂安发布:尝试 chardet.

请记住,一般来说,不可能100%可靠地检测每个输入文件的字符编码 – 换句话说,有可能的输入文件可以被解释为几种字符编码中的任何一种,并且可能没有办法告诉哪一个实际上正在使用. chardet使用了一些启发式方法,并给出了一个置信度,表明它确定的字符编码实际上是否正确.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读