Python:将二进制文件读入数组

时间:2019-11-28 03:05:06

标签: python binary decode

我试图导入二进制数据并在python上处理它:

with open("myData", "rb") as binary_file:

    data = binary_file.read()
    print(data)

  
    

b'\ x00 \ x00 \ x00 \ t0.000000 \ r \ x00 \ x00 \ x00 \ t0.173902 \ r \ x00 \ x00 \ x00 \ t0.343819 \ r \ x00 \ x00 \ x00 \ t0。 491724 \ r \ x00 \ x00 \ x00 \ t0.660698 \ r \ x00 \ x00 \ x00 \ t0.791551 \ r \ x00 \ x00 \ x00 \ t0.890531 \ r \ x00 \ x00 \ x00 \ t0.987460 \ r \ x00 \ x00 \ x00 \ t1.083403 \ r \ x00 \ x00 \ x00 \ t1.180349 \ r \ x00 \ x00 \ x00 \ t1.274278 \ r \ x00 \ x00 \ x00 \ x00 \ t1.372280 \ r \ x00 \ x00 \ x00 \ t1.470185 \ r \ x00 \ x00 \ x00 \ x00 \ t1.570129 \ r \ x00 \ x00 \ x00 \ t1.668071 \ r \ x00 \ x00 \ x00 \ x00 \ t1.764061 \ r \ x00 \ x00 \ x00 \ t1.861004 \ r \ x00 \ x00 \ x00 \ t1.956906 \ r \ x00 \ x00 \ x00 \ t2.051896 \ r \ x00 \ x00 \ x00 \ t2.150841 \ r \ x00 \ x00 \ x00 \ t2.249743 \ r \ x00 \ x00 \ x00 \ t2.345730 \ r \ x00 \ x00 \ x00 \ t2.443689 \ r \ x00 \ x00 \ x00 \ t2.537581 \ r \ x00 \ x00 \ x00 \ t2.636510 \ r \ x00 \ x00 \ x00 \ t2.738474 \ r \ x00 \ x00 \ x00 \ t2.843399 \ r \ x00 \ x00 \ x00 \ t2.941346 \ r \ x00 \ x00 \ x00 \ t3。 041276 \ r \ x00 \ x00 \ x00 \ t3.138279 \ r \

  

以上只是我全部数据的一部分。我试图将其转换为字符串,但它不起作用...

with open("D:/Python/reshape 3D/measurement data/112719_binary/time", "rb") as binary_file:

    data = binary_file.read(32)
    data = data.decode('utf-8')
    print(data)

我应该如何转换回来并将它们放在列表中? 上面的结果应该是[0.000000,0.173902,0.343819 .....]

1 个答案:

答案 0 :(得分:0)

您似乎有一个两列的制表符分隔的字节图像,其中第一列全为零,最后一个列为其他字段(从第二列开始),并将它们转换为浮点数:

list(map(float, data.split()[1::2]))
#[0.173902, 0.491724, 0.791551, 0.98746, 1.180349,...
相关问题