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

问题描述 投票:0回答:1

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

我没有太多的Python经验,我真的没有关于如何解决这个问题的线索

python hex
1个回答
0
投票

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

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)

产量

有七个原因

© www.soinside.com 2019 - 2024. All rights reserved.