读取文本fi时出现UnicodeDecodeError

2024-09-27 22:44:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python的初学者(我使用的是3.4)。这是我代码的相关部分。在

fileObject = open("countable nouns raw.txt", "rt")
bigString = fileObject.read()
fileObject.close()

每当我试图阅读此文件时,我会得到:

^{pr2}$

我一直在阅读,这似乎与我的默认编码不匹配的文本文件编码有关。我在另一篇文章中读到,你可以使用这种方法来读取具有特定编码的文件:

import codecs
f = codecs.open("file.txt", "r", "utf-8")

但你必须提前知道。问题是我不知道文本文件是如何编码的。一些帖子建议使用Chardet。我已经安装了它,但我不知道如何让它读取文本文件。在

有什么办法解决这个问题吗??在


Tags: 文件代码txt编码readrawopen文本文件
3条回答

要添加到Martijn Pieters的答案,您可能需要查看以下链接: http://osxdaily.com/2015/08/11/determine-file-type-encoding-command-line-mac-os-x/

如果你是一个Mac用户,很难弄清楚你的特定文件是用什么编码的。在

除了在使用open时使用正确的Python方法指定编码之外,还可以尝试使用^{}工具来获取编码。在

文件foo.txt包含

ÙÚÛÜ

可以使用

^{pr2}$

正如使用^{}可以看到的,它包含九个字节,每个字符有两个字节,一个换行符。在

不需要使用codecs.open();这是python2的建议。在

在Python 3中,open()接受一个encoding参数:

fileObject = open("countable nouns raw.txt", "rt", encoding='utf8')

当然,这需要知道文件使用了什么编解码器。一般来说,Python不容易找到它;单独的文件格式可能包含编解码器信息,或者在给定的编解码器上进行了标准化,但是如果所有文件都有一个通用的文本文件,那么就必须弄清楚是什么创建了它,以及用什么编解码器来编写数据。在

相关问题 更多 >

    热门问题