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>
如果你能告诉我它为什么会发生以及下次如何避免它,我会很感激。我讨厌使用我不理解的东西。
答案 0 :(得分:0)
错误是说你正在打开的文件中的某个位置(实际上是位置66),有一个unicode代码实际上并没有映射到真实角色。所以基本上,在你的文件的机器代码的某处,有些位搞砸了,现在它们所属的字节不再代表unicode编码中的字母。
编辑:进一步思考(正如托马斯指出的那样),这是因为您尝试打开的文件是.docx,它不是以unicode编码的。它们以专有的Microsoft格式编码。我不确定是否有办法在python中打开一个并获得可读字符。如果你想在python中使用这个文档的内容,你需要转换它(谷歌搜索“docx到unicode转换器”会产生一些结果)或者将文本复制并粘贴到纯文本文档中