用于在Python中读取文件的UnicodeDecodeError

时间:2016-07-31 19:19:00

标签: python

pythonNotes = open('E:\\Python Notes.docx','r')
read_it_now = pythonNotes.read()
print(read_it_now.encode('utf-16'))

当我尝试这段代码时,我得到:

UnicodeDecodeError: 'charmap' can't decode byte 0x8f in position 591 character maps to <undefined>

我在Visual Studio中使用python工具运行它 - 无需调试即可启动。

我尝试将enc='utf-8'放在顶部,将其作为参数投入,我已经查看了其他问题,但却找不到解决这个简单问题的方法。

请协助。

1 个答案:

答案 0 :(得分:0)

当已经采用utf-8格式的文本作为8位编码读入时,此错误can occur,并且python尝试将其“解码”为Unicode:在假定的编码中没有意义的字节扔一个UnicodeDecodeError。但是,如果您尝试将文件读取为utf-8编码中不属于utf-8的文件,则始终会收到错误。

在您的情况下,问题是docx文件不是常规文本文件;没有单一的文本编码可以有意义地导入它。有关如何在较低级别阅读该文档的说明,请参阅此SO answer,或使用python-docx以类似于您在Word中看到的方式访问文档。