读取二进制输入的UnicodeDecodeError

时间:2015-02-24 22:13:33

标签: python linux python-3.x

我尝试将我的代码从python 2.7移植到3.4。在2.7以下,它运作良好。 我将导入一个Picoscope二进制文件,并在Python 3.4(ubuntu)下获得以下错误:

in __import_CS
data_A = bin_file_A.read(64)
File "/usr/lib/python3.4/codecs.py", line 313, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf3 in position 1: invalid continuation byte

这里是代码片段:

bin_file_A = open(infile ,"r")
bin_file_B = open(infile_B ,"r")

######  read file header ########
data_A = bin_file_A.read(64)
data_B = bin_file_B.read(64)

start = 0
stop = struct.calcsize('8d')
n_A = struct.unpack('>8d', data_A[start:stop])
n_B = struct.unpack('>8d', data_B[start:stop])

1 个答案:

答案 0 :(得分:3)

您需要以二进制模式读取文件:

bin_file_A = open(infile_A, "rb")
bin_file_B = open(infile_B, "rb")