Как преобразовать 16-ричную байт строку d = b'1dc4152591e60959049915290a452129' к виду d1 = b'''\x1d\xc4\x15\x25\x9\...\x45\x21\x29\'''
Есть строка 16-ричная d = b'1dc4152591e60959049915290a452129'
Её нужно привести к виду
st = b'''\
\x1d\xc4\x15\x25\x91\xe6\x09\x59\x04\x99\x15\x29\x0a\x45\x21\x29\'''
st = ''
for i in range(0, len(d), 2):
if 32 <= int(d[i:i+2], 16) <= 126:
st += '\\' + hex(int(d[i:i+2], 16))[1:]
else:
if len(hex(int(d[i:i+2], 16))) == 3:
st += '\\' + hex(int(d[i:i+2], 16)).replace('x', '0', 1).replace('0', 'x', 1)
else:
st += '\\' + hex(int(d[i:i+2], 16))[1:]
print(st + '\\')
print(bytes(st + '\\', 'ascii'))
replace('x', '0', 1).replace('0', 'x', 1)
это чтобы получить
x09 x04 x0a
Условие для печатных символов ascii
if 32 <= int(d[i:i+2], 16) <= 126:
print(st + '\\')
# \x1d\xc4\x15\x25\x91\xe6\x09\x59\x04\x99\x15\x29\x0a\x45\x21\x29\
Привожу к байтам
print(bytes(st, 'ascii'))
# b'\\x1d\\xc4\\x15\\x25\\x91\\xe6\\x09\\x59\\x04\\x99\\x15\\x29\\x0a\\x45\\x21\\x29'
Как мне получить строку вида
st = b'''\
\x1d\xc4\x15\x25\x91\xe6\x09\x59\x04\x99\x15\x29\x0a\x45\x21\x29\'''