Почему мой struct.pack печатает строку вместо двоичного потока?
var = struct.pack('hhl3sf', 1, 2, 3, 'm6y', 2.7)
print repr(var)
Вывод:
'\x01\x00\x02\x00\x03\x00\x00\x00m6y\x00\xcd\xcc,@'
Должен ли m6y быть напечатан как \ x6d \ x36 \ x79? И если нет, то как я могу распечатать его прямо из пакета, как она или просто в двоичном виде?
И почему char @ print в конце? Спасибо.
Я попытался преобразовать все значения в ascii и затем распечатать их в шестнадцатеричном виде.
А также работает binascii.hexlify.
Они оба работают, но мне интересно, почему пакет не делает это автоматически. Спасибо.
map(lambda c: ord(c), var)
map(lambda i: hex(i), map(lambda c: ord(c), var))
print 'Packed value : ', binascii.hexlify(var)