问题描述
>>> data=b'\x11\x22'
>>> data.hex()
'1122'
>>> len(data)
2
#let's try to replace data ....
>>> data.replace(b'1122',b'3344').hex()
'1122'
为什么我不能用 replace
0x1122 到 0x3344 替换?
解决方法
因为您的 bytes
不包含 1122
(代表 '1'
、'1'
、'2'
、'2'
的四个离散 ASCII 值),它包含 \x11\x22
(两个离散的原始字节编码,0x11
,0x22
)。如果要替换原始字节值,请提供它们以进行替换,例如
data.replace(b'\x11\x22',b'\x33\x44').hex()