我尝试将我的代码从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])
答案 0 :(得分:3)
您需要以二进制模式读取文件:
bin_file_A = open(infile_A, "rb")
bin_file_B = open(infile_B, "rb")