[英]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.