不能用python替换十六进制字节
>>> data=b'x11x22'
>>> data.hex()
'1122'
>>> len(data)
2
#let's try to replace data ....
>>> data.replace(b'1122',b'3344').hex()
'1122'
为什么我不能用replace0x1122替换为 0x3344 ?
回答
因为您bytes不包含1122(四个离散的 ASCII 值代表'1', '1', '2', '2'),它包含x11x22(两个离散的原始字节编码,0x11, 0x22)。如果要替换原始字节值,请提供它们以进行替换,例如
data.replace(b'x11x22',b'x33x44').hex()