我有一个很大的值列表,我想将它们作为短整数写入文件。
我想在 Python3 中有效地做到这一点。
一次一个值,可以使用struct模块:
struct.pack( "h", val )
可以在格式条目前面加上一个计数,如下所示:
struct.pack( "4h", val0,val1,val2,val3 )
但是当我尝试动态构建格式并一次性编写时,我无法输入列表。
例如:
values = [ x for x in range(100) ]
fmt = "%dh" % ( len(values), )
p = struct.pack( fmt, values )
会报错:struct.error: pack expected 100 items for packing (got 1)
如何有效地将大量短整数转储到文件中?
基本上,C 代码的 Python 等价物:
short values[100];
fwrite( values, sizeof(values), 1, f);
或者如果我使用 Python,我是否被迫一次写一个这些值?