在 Python 3.5 中读取在 Python 2.7 中生成的文件
Posted
技术标签:
【中文标题】在 Python 3.5 中读取在 Python 2.7 中生成的文件【英文标题】:Reading files in Python 3.5 which have been generated in Python 2.7 【发布时间】:2019-08-26 14:08:30 【问题描述】:我在 Python 2.7 中运行了一些脚本,生成了一个文件,当我尝试打开它时,发现以下错误:
UnicodeDecodeError:“ascii”编解码器无法解码位置 2623 中的字节 0xc0:序数不在范围内 (128)
任何关于如何在 Python 3.5 中打开它的线索?
【问题讨论】:
打开文件时使用正确的编码。 UTF8 是一个很好的初步猜测。 如果您在此处发布您用于生成该错误的代码,以便我们准确查看问题所在,这将有所帮助。 【参考方案1】:您的文件位于utf-8
(可能)。 ASCII 编解码器无法解码 unicode 文本。
您应该使用正确的编解码器。 file.read()
函数返回一个类似字节的对象。你可以像这样把它变成一个字符串:
contents = str(file.read(), 'utf-8')
【讨论】:
或者你可以在打开文件时指定编码【参考方案2】:打开文件时可以指定编码:
with open(myfile, encoding='utf-8) as f:
pass
【讨论】:
以上是关于在 Python 3.5 中读取在 Python 2.7 中生成的文件的主要内容,如果未能解决你的问题,请参考以下文章
使用 python 3.5 从静态 HTML 文件中提取数据
python 3.5: TypeError: a bytes-like object is required, not 'str'