我正在尝试使用填充了信息的文本文件来对Python 3程序进行一些操作 . 但是,在尝试读取文件时,我收到以下错误:
回溯(最近一次调用最后一次):文件“SCRIPT LOCATION”,第NUMBER行,在text = file.read()文件“C:\ Python31 \ lib \ encodings \ cp1252.py”,第23行,在解码返回编解码器中 . charmap_decode(input,self.errors,decoding_table)[0] UnicodeDecodeError:'charmap'编解码器无法解码位置2907500中的字节0x90:字符映射到
如果有人能给我任何帮助试图解决这个问题,我将非常感激 .
3 回答
有问题的文件未使用
CP1252
编码 . 它正在使用另一种编码 . 哪一个你必须弄清楚自己 . 常见的是Latin-1
和UTF-8
. 由于0x90实际上并不意味着Latin-1
,UTF-8
(其中0x90是一个连续字节)更有可能 .您在打开文件时指定编码:
只是添加以防
file = open(filename, encoding="utf8")
不起作用试试file = open(filename, errors='ignore')
一切都很好
作为@LennartRegebro的扩展答案:
如果你不能't tell what encoding it is and solution above does not work (it'并且你发现自己只是猜测 - 你可以使用online tools来识别它是什么编码 . 它们并不完美,但通常工作得很好 . 找出编码后,您应该可以使用上面的解决方案 .
EDIT: (复制自评论)
一个非常流行的文本编辑器
Sublime Text
有一个显示编码的命令,如果它已被设置...View
- >Show Console
(或Ctrl`)view.encoding()
并希望最好(除了Undefined
我无法得到任何东西,但也许你会有更好的运气......)