我正在尝试将 Perl 脚本转换为 python,它使用了很多不同的包。我已经能够弄清楚每个“模板”中的字母差异,但是我在理解如何处理 Perl 的缺少长度声明方面遇到了问题。
例子:
pack('Nc*',$some_integer,$long_array_of_integers);
我在 Python 的 struct.pack 中没有看到这个“*”功能的模拟。关于如何将其转换为 Python 的任何想法?
这个怎么样?
struct.pack('>I', some_integer) + struct.pack('b'*len(long_array), *long_array)
Perl 的包使用类似于正则表达式中的“*”字符——意味着更多相同的通配符。当然,这里意味着更多的有符号整数。
在 Python 中,您只需遍历字符串并连接各个部分:
result = struct.pack('>L', some_integer)
for c in long_array_of_integers:
result += struct.pack('b',c)