gpt4 book ai didi

python - 使用通用编码检测器 (chardet) 在 Python 中的文本文件中检测字符

转载 作者:IT老高 更新时间:2023-10-28 20:50:50 25 4
gpt4 key购买 nike

我正在尝试使用 Python 中的通用编码检测器 (chardet) 来检测文本文件 ('infile') 中最可能的字符编码,并将其用于进一步处理。

虽然 chardet 主要用于检测网页的字符编码,但我发现了一个 example它被用于单个文本文件。

但是,我不知道如何告诉脚本将最可能的字符编码设置为变量“charenc”(在整个脚本中多次使用)。

我的代码,基于上述示例和 chardet 自己的 documentation 的组合如下:

import chardet    
rawdata=open(infile,"r").read()
chardet.detect(rawdata)

字符检测是必要的,因为脚本继续运行以下(以及几个类似的用途):

inF=open(infile,"rb")
s=unicode(inF.read(),charenc)
inF.close()

任何帮助将不胜感激。

最佳答案

chardet.detect() 返回一个字典,它提供编码作为与键 'encoding' 关联的值。所以你可以这样做:

import chardet    
rawdata = open(infile, 'rb').read()
result = chardet.detect(rawdata)
charenc = result['encoding']

The chardet documentation尚不清楚文本字符串和/或字节字符串是否应该与模块一起使用,但有理由认为,如果您有文本字符串,则不需要对其运行字符检测,因此您可能应该传递字节字符串。因此在对 open() 的调用中使用了二进制模式标志 (b)。但是 chardet.detect() 也可能与文本字符串一起使用,具体取决于您使用的 Python 版本和库的版本,即,如果您确实省略了 b 您即使您在技术上做错了什么,也可能会发现它仍然有效。

关于python - 使用通用编码检测器 (chardet) 在 Python 中的文本文件中检测字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3323770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com