Equivelant способ выполнения массива Ruby в Python - PullRequest
1 голос
/ 24 мая 2019

У меня есть функция Ruby, которая выглядит следующим образом:

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

По сути, я хотел бы выполнить то же самое в Python (если бы вы могли также дать ссылку на форматы пакетов, это было бы очень полезно), но я попытался сделать это из bytearray, однако, я ' м в растерянности на данный момент. Любая помощь будет принята с благодарностью, спасибо.

1 Ответ

1 голос
/ 24 мая 2019

Это похоже на то, что вы хотите

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
...