我有一个很大的值列表,我想将这些值写成一个短整数。
我想在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:预期包装100个要包装的物品(获得1个)
如何有效地将大量短整数转储到文件中?
基本上,Python等效于C代码:
short values[100];
fwrite( values, sizeof(values), 1, f);
还是如果我使用Python,是否必须一次写一次这些值?
只需更改一个字符:
p = struct.pack(fmt, *values)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句