Вы не можете.
Если вы используете стандартный тип bytes
, то его строковое представление будет выглядеть так: оно будет представлять все символы ASCII как самих себя. Например, b'\x42'
- это символ ASCII 'R'
, поэтому он будет напечатан сам по себе.
Конечно, вы можете создать свою собственную функцию, чтобы получить желаемый результат, например:
def print_me(thing: bytes):
print(''.join(
f'\\x{byte:02x}'
for byte in thing
))
>>> print_me(bytes.fromhex("52fab71f49a01ef92e793b41c13c5458080679919c7e5888f195935bd50c1bb8"))
\x52\xfa\xb7\x1f\x49\xa0\x1e\xf9\x2e\x79\x3b\x41\xc1\x3c\x54\x58\x08\x06\x79\x91\x9c\x7e\x58\x88\xf1\x95\x93\x5b\xd5\x0c\x1b\xb8
, но базовые данные, хранящиеся в вашем bytes
объекте, останутся такими же, независимо от того, как вы их представляете.