在Python中执行Ruby的array.pack的等效方法

时间:2019-05-24 13:52:43

标签: python ruby equivalent

我有一个看起来像这样的Ruby函数:

def domain_request
  pkt = "0300000c02f0800400010001"
  return [pkt].pack("H*")
end

我基本上想做的是在Python中执行相同的操作(如果您还可以提供对包格式的引用,将不胜感激),但是我尝试从bytearray开始这样做,我现在不知所措。任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

这看起来像您想要的

from binascii import unhexlify

str = "0300000c02f0800400010001"
unhexlify(str)

尽管ruby的输出看起来略有不同,但在ruby和python中比较它们都是正确的,但是此代码在python和ruby中均有效:

s1 = "\x03\x00\x00\x0c\x02\xf0\x80\x04\x00\x01\x00\x01"
s2 = "\x03\x00\x00\f\x02\xF0\x80\x04\x00\x01\x00\x01"

s1 == s2 #=> true or True in python