Python: предотвращение декодирования bytearray во время печати - PullRequest
0 голосов
/ 31 октября 2019

Следующий код показывает, что печать байтовой матрицы позволяет декодировать символы ASCII, когда это возможно.

>>> a = bytearray([0x0D, 0x48, 0x69])
>>> print(a)
bytearray(b'\rHi')

Есть ли простой способ предотвратить декодирование байтов и получить результат, подобный этому?

bytearray(b'\x0d\x48\x69')

Ответы [ 2 ]

1 голос
/ 31 октября 2019

Боюсь, вы должны построить его вручную :

def dump(x):
    return ''.join([type(x).__name__, "('",
                    *['\\x'+'{:02x}'.format(i) for i in x], "')"])

Затем вы можете сделать:

>>> a = bytearray('\rHi', 'ascii')
>>> print(dump(a))
bytearray('\x0d\x48\x69')
1 голос
/ 31 октября 2019

Вот решение (но должен быть более органичный способ сделать это)!

a = bytearray ([0x0D, 0x48, 0x69])

print (map (hex)а))

...