尝试打开文件时给出unicodedecoderror

时间:2013-06-29 05:37:10

标签: python file

f = open('C://Users//fireqwert7//Documents//tesis.docx')


sts=''

for line in f:
    sts += line

print(sts)

f.close()

给出错误

Traceback (most recent call last):
  File "C:\Python32\regularexpressions.py", line 11, in <module>
    for line in f:
  File "C:\Python32\lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 66: character maps to <undefined>

如果你能告诉我它为什么会发生以及下次如何避免它,我会很感激。我讨厌使用我不理解的东西。

1 个答案:

答案 0 :(得分:0)

错误是说你正在打开的文件中的某个位置(实际上是位置66),有一个unicode代码实际上并没有映射到真实角色。所以基本上,在你的文件的机器代码的某处,有些位搞砸了,现在它们所属的字节不再代表unicode编码中的字母。

编辑:进一步思考(正如托马斯指出的那样),这是因为您尝试打开的文件是.docx,它不是以unicode编码的。它们以专有的Microsoft格式编码。我不确定是否有办法在python中打开一个并获得可读字符。

如果你想在python中使用这个文档的内容,你需要转换它(谷歌搜索“docx到unicode转换器”会产生一些结果)或者将文本复制并粘贴到纯文本文档中