我试图让一个Python 3程序对一个充满信息的文本文件进行一些操作。但是,在尝试读取文件时,出现以下错误:
Traceback (most recent call last):
File "SCRIPT LOCATION", line NUMBER, intext = file.read()
File "C:\Python31\lib\encodings\cp1252.py", line 23, in decodereturn codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 2907500: character maps to<undefined>
只是在
file = open(filename, encoding="utf8")
不起作用时添加 尝试file = open(filename, errors='ignore')
作为@LennartRegebro's answer的扩展:
如果你不知道你的文件使用什么编码,而上面的解决方案不起作用(这不是
utf8
),你发现自己只是在猜测-有online tools你可以用来识别什么编码。它们并不完美,但通常工作得很好。在你找到编码之后,你应该能够使用上面的解决方案。编辑:(从评论复制)
一个非常流行的文本编辑器
Sublime Text
有一个显示编码的命令,如果它已经设置。。。View
->;Show Console
(或Ctrl+`)view.encoding()
并希望是最好的(除了Undefined
我什么也得不到,但也许你会有更好的运气…)有问题的文件没有使用
CP1252
编码。它正在使用另一种编码。你得自己弄清楚是哪一个。常见的是Latin-1
和UTF-8
。因为0x90实际上并不意味着Latin-1
中的任何内容,所以UTF-8
(其中0x90是一个连续字节)更有可能。打开文件时指定编码:
相关问题 更多 >
编程相关推荐