簡體   English   中英

如何將Perl的包'Nc *'格式轉換為Python的struct.pack?

[英]How do I convert Perl's pack 'Nc*' format to struct.pack for Python?

我正在嘗試將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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM