读取文件时Python编码问题

标签 python python-2.7

我正在尝试读取一个包含“ë”字符的文件。问题是,无论我尝试如何处理编码,我都无法弄清楚如何阅读它。当我在 textedit 中手动查看该文件时,它被列为未知的 8 位文件。如果我尝试将其更改为 utf-8、utf-16 或其他任何内容,它要么不起作用,要么弄乱整个文件。我尝试仅使用标准 python 命令以及编解码器来读取该文件,但无法想出任何可以正确读取该文件的方法。我将在下面提供一个代码示例。有人知道我做错了什么吗?顺便说一句,这是 Python 2.17.10。

readFile = codecs.open("FileName",encoding='utf-8')

我要读的行是这一行,其中没有其他内容。

Aeëtes

以下是我遇到的一些错误:

UnicodeDecodeError: 'utf8' codec can't decode byte 0x91 in position 0: invalid start byte

UTF-16 stream does not start with BOM" UnicodeError: UTF-16 stream does not start with BOM -- I know this one is that it is not a utf-16 file.

UnicodeDecodeError: 'ascii' codec can't decode byte 0x91 in position 0: ordinal not in range(128)

如果我不使用编解码器,该单词将以 Ae?tes 的形式出现,然后在程序中稍后崩溃。需要明确的是,建议的问题或网络上的任何其他问题都没有指出答案。另一个可能有帮助的细节是我使用的是 OS X,而不是 Windows。

最佳答案

这个答案要归功于 RadLexus 找出了正确的编码,也归功于疯狂物理学家,即使我没有考虑所有可能的编码,他也为我指明了正确的方向。

问题显然是 Mac 会将 .txt 文件转换为 mac_roman。如果您使用该编码,它将完美地工作。

这是我用来转换它的代码行。

readFile = codecs.open("FileName",encoding='mac_roman')

关于读取文件时Python编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39415856/

相关文章:

python - 如何计算每个产品的滚动平均值?

python - 不使用 Numpy 打印棋盘格

python - 使用 matplotlib 在 python 中使用字典的条形图

python - 使用sightengine api 时,“检查​​”对象没有属性 'image'

python - 从 Python 2 升级到 Python 3 后该怎么办?

python - 是否可以在本地编译 microbit python 代码?

python - Pandas 是否没有从给定列表中的数据框中过滤行的功能

Python 属性返回属性对象

python - 模型选择类

python - 培训中的 AWS NoCredentials