Python:file.read()函数错误-UnicodeDecodeErrors?

Python:file.read()函数错误-UnicodeDecodeErrors?,python,runtime-error,codec,Python,Runtime Error,Codec,由于file.read()函数以UnicodeDecodeErrors结尾,如何从python中的原始bin文件中读取字节 具体地说,我正在读取一个.bin文件,并且遇到了这个错误 File "F:\Codes\Python\ML\Pybrain_test.py", line 27, in <module> string = img_set.read(784) File "F:\Programs\Python\lib\encodings\cp1252.py", line 23,

由于file.read()函数以UnicodeDecodeErrors结尾,如何从python中的原始bin文件中读取字节

具体地说,我正在读取一个.bin文件,并且遇到了这个错误

File "F:\Codes\Python\ML\Pybrain_test.py", line 27, in <module>
  string = img_set.read(784)
File "F:\Programs\Python\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 0x8d in position 1440: character maps to <undefined>
文件“F:\Codes\Python\ML\Pybrain\u test.py”,第27行,在
string=img_set.read(784)
文件“F:\Programs\Python\lib\encodings\cp1252.py”,第23行,解码
返回编解码器.charmap\u解码(输入、自身错误、解码表)[0]
UnicodeDecodeError:“charmap”编解码器无法对1440位置的字节0x8d进行解码:字符映射到

如果仅使用
打开(文件名)
打开文件,则会将其解释为文本,而不是字节。您应该以字节文件的形式打开该文件,如下所示:

f = open(filename, 'b')

然后,
f.read()
将不会给出该错误

如果您仅使用
open(filename)
打开文件,它将被解释为文本,而不是字节。您应该以字节文件的形式打开该文件,如下所示:

f = open(filename, 'b')

然后
f.read()
将不会给出该错误

您必须以二进制模式打开文件,否则默认文本模式将尝试在Python 3中解码文件字节。您必须以二进制模式打开文件,否则默认文本模式将尝试在Python 3中解码文件字节。