读取文本文件时出现UnicodeDecodeError

席德

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

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

每当我尝试读取此文件时,我都会得到:

UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 82273: character maps to <undefined>

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

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

但是您必须事先知道。问题是我不知道文本文件是如何编码的。建议使用Chardet的一些帖子。我已经安装了它,但是我不知道如何获取它来读取文本文件。

关于如何解决这个问题的任何想法?

马丁·彼得斯(Martijn Pieters)

无需使用codecs.open(); 这是对Python 2的建议。

在Python 3中open()有一个encoding参数:

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

当然,这确实需要您知道该文件使用了哪种编解码器。一般来说,Python很难弄清楚这一点。单个文件格式可能包含编解码器信息或已在给定编解码器上进行了标准化,但是如果所有文件都具有通用文本文件,则必须弄清楚是谁创建了该文件以及使用了哪种编解码器来写入数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

更改文本文件时出现UnicodeDecodeError

读取文本文件时出现Clojure异常

从Python中的文本文件中读取文本时出现格式问题?

读取多个文本文件时(或执行两次时,free()出现问题?)

读取文本文件时,如何解决此cp950“非法多字节序列” UnicodeDecodeError?

使用ObjectOutputStream将我的对象写入文本文件时出现无法读取的字符

当我尝试将整数的文本文件读取为int []时,出现NumberFormatException

从资产读取文本文件时出现问题(xamarin)

读取以Western编码(ISO-8859-1)编码的文本文件时出现问题

在Java中读取文本文件时出现垃圾字符

读取文本文件时出现问题-java.lang.StringIndexOutOfBoundsException

尝试从文本文件读取数据时出现问题

尝试在 C 中读取迷宫文本文件时出现 malloc 错误

从 C 中的文本文件读取时出现意外错误

每次读取文本文件并添加新行;出现

从文本文件读取

通过Python读取文本文件时如何保持文本文件的格式?

在使用perl重命名文本文件时,在文本文件末尾出现问号

Java - 当某个序列发生时读取文本文件

读取文本文件时缺少连字符

读取文本文件时忽略NUL值

尝试从文本文件读取时发生NullPointerException

Perl-读取文本文件时出错

使用fscanf()读取文本文件时出错

读取文本文件时遇到问题

从文本文件读取时如何更新Tkinter标签

从文本文件读取时,如何获取char []的大小

从文本文件读取内容时遇到问题

使用FileUpload控件时读取文本文件