如何在 Python 中按字节修改十六进制字符串字节



我正在编写一小段代码来交换.bmp和.wav文件之间的标头。我设法提取原始字节(例如 x00x12 ( 并将其转换为字符串 ( 0012 (,但我现在想做的是以一种我可以将其修改为两个字节乘以两个字节的方式拆分字符串。这意味着我有我的十六进制字符串,例如 FACB3D52 ,我希望它被拆分FACB以便我可以在其中应用规则(如果有 A,请替换为 B(,然后它向前移动到 3D52 ,应用相同的规则,并重新组装字符串,以便它输出FBCB3D52

我在Python方面没有太多经验,我真的不知道我应该如何解决这个问题

如果要对十六进制数的每个区块应用相同的规则,则可以使用以下规则。

hexstr = "FACB3D52"
hexlist = [hexstr[i:i+4] for i in range(len(hexstr)//4)] # Split into list of substrings
new_hexlist = [substr.replace('A', 'B') for substr in hexlist] # Apply rule to each substring
new_hexstr = ''.join(new_hexlist) # Join substrings back to form final string
print(new_hexstr)

输出

FBCBBCB3

最新更新