5

PerlスクリプトをPythonに変換しようとしていますが、かなりの数の異なるパックを使用しています。それぞれの「テンプレート」の文字の違いを理解することはできましたが、Perlの長さの欠如の宣言を処理する方法を理解するのに問題があります。

例:

pack('Nc*',$some_integer,$long_array_of_integers);

Pythonのstruct.packにこの「*」機能の類似物がありません。これをPythonに変換する方法について何かアイデアはありますか?

4

2 に答える 2

7

これはどう?

struct.pack('>I', some_integer) + struct.pack('b'*len(long_array), *long_array)
于 2009-10-06T19:39:30.480 に答える
1

Perlのパックは、正規表現と同様の「*」文字を使用しています。これは、同じものの多くをワイルドカードで表すことを意味します。ここでは、もちろん、それはより多くの署名されたintを意味します。

Pythonでは、文字列をループして断片を連結するだけです。

result = struct.pack('>L', some_integer)
for c in long_array_of_integers:
    result += struct.pack('b',c)
于 2009-10-06T19:38:13.697 に答える