Как преобразовать 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\'''


Ответы (0 шт):