有谁知道如何在Python中获取文件的编码。我知道您可以使用编解码器模块打开具有特定编码的文件,但您必须提前知道它。
import codecs
f = codecs.open("file.txt", "r", "utf-8")
有没有办法自动检测文件使用哪种编码?
提前致谢
编辑:
感谢大家提供非常有趣的答案。您可能还感兴趣http://whatismyencoding.com/ http://whatismyencoding.com/它基于 chardet (该网站的更多内容由 Bottle python 框架提供支持)
不幸的是,没有“正确”的方法可以通过查看文件本身来确定文件的编码。这是一个普遍的问题,不限于 python 或任何特定的文件系统。
如果您正在读取 XML 文件,则文件中的第一行might给你一个关于编码是什么的提示。
否则,您将不得不使用一些基于启发式的方法,例如chardet https://pypi.python.org/pypi/chardet(其他答案中给出的解决方案之一)尝试通过检查原始字节格式的文件中的数据来猜测编码。如果您使用的是 Windows,我相信 Windows API 还公开了一些方法来尝试根据文件中的数据猜测编码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)