繁体   English   中英

读取二进制文件 - Little Endian

[英]Read in Binary File - Little Endian

我创建了一个二进制文件,如下所示。 我如何将此文件的内容读入变量?

import struct 

with open("test-09.bin", "wb") as fp:
    fp.write(struct.pack("<4d", 3.14159, 42.0, 123.456, 987.654))

with open("test-09.bin", "rb") as fp:
    fp.read(struct.unpack("<4d", ????))

你有倒退的逻辑 - 读取文件内容作为unpack的参数,这将返回解压后的数据 - 如下所示:

with open("test-09.bin", "rb") as fp:
    nums = struct.unpack("<4d", fp.read())

nums设置为:

(3.14159, 42.0, 123.456, 987.654)

更新:正如@tdelaney 指出的那样,最好不要假设读取的大小,因此更全面的方法可能是:

format = "<4d"
size = struct.calcsize(format)
with open("test-09.bin", "rb") as fp:
    data = fp.read(size)
if len(data) == size:
    nums = struct.unpack("<4d", data)
else:
    print("short file read")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM