gpt4 book ai didi

python - 我怎样才能一次 struct.unpack 多个数字

转载 作者:太空狗 更新时间:2023-10-30 01:39:38 25 4
gpt4 key购买 nike

我想将一堆压缩整数放入一个文件中,例如:

for i in int_list:
fp.write(struct.pack('<I', i))

现在我想将它们读出到 int_list 中。我可以这样做,但它似乎效率低下:

data = fp.read()
int_list = []
for i in xrange(0, len(data), 4):
int_list.append(struct.unpack('<I', data[i:i+4])[0])

有没有更有效的方法来做到这一点?

最佳答案

你可以在两个方向上更有效地做到这一点:

>>> import struct

>>> int_list = [0, 1, 258, 32768]
>>> fmt = "<%dI" % len(int_list)
>>> data = struct.pack(fmt, *int_list)
>>> data
'\x00\x00\x00\x00\x01\x00\x00\x00\x02\x01\x00\x00\x00\x80\x00\x00'

>>> # f.write(data)
... # data = f.read()
...

>>> fmt = "<%dI" % (len(data) // 4)
>>> new_list = list(struct.unpack(fmt, data))
>>> new_list
[0, 1, 258, 32768]

关于python - 我怎样才能一次 struct.unpack 多个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8461798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com