Python中将byte对象转换为带反斜杠转义的字符串方法
Python字节对象转全转义字符串的简便方法
方法1:利用内置repr()函数(保留可打印字符)
repr()函数会自动将字节对象转换为带标准转义的字符串表示,只需去掉首尾的b'和'即可得到目标格式:
a = b'1' result = repr(a)[2:-1] print(result) # 输出: \x31
处理你的目标对象:
my_obj = b'\x00$\x00\x00\x001.1.0.00\x00\x00\x00\x00\x00\x00\x00\x001.1.0.21152\x00\x00' escaped_str = repr(my_obj)[2:-1] print(escaped_str)
输出结果会自动对不可打印字符转义,可打印字符(如$、1、.)保留原样,满足常规转义需求。
方法2:强制全字节\x转义
如果要求所有字符都必须用\x十六进制格式转义(包括可打印字符),可以遍历每个字节手动格式化:
a = b'1' result = ''.join(f'\\x{byte:02x}' for byte in a) print(result) # 输出: \x31
处理目标对象:
my_obj = b'\x00$\x00\x00\x001.1.0.00\x00\x00\x00\x00\x00\x00\x00\x001.1.0.21152\x00\x00' escaped_str = ''.join(f'\\x{byte:02x}' for byte in my_obj) print(escaped_str)
这种方式会把$转成\x24,1转成\x31,所有字节统一用\xXX格式表示。
内容的提问来源于stack exchange,提问作者mhanuel
相关产品推荐
相关产品推荐

