我有一个文件,我使用
以二进制格式打开with open(filename, 'br') as f2
然后我需要提取某些Hex块。代码中会有很多这些“日期”,如下所示:
F2 96 E6 20 36 1B E4 40
我需要提取这个的每个实例,以便我完成对它的日期编辑。每个'日期'将以上面的十六进制char 40结束。
我尝试过正则表达式,但这些似乎并不像我想的那样工作。
例如
re.findall(b'............\\\x40', filename)
有人可以帮忙吗?
答案 0 :(得分:1)
我认为你的字节与十六进制表示混淆。 0x40
是整数64
的{{3}}表示形式,它是符号@
的ascii代码。
with open(filename, 'rb') as f:
results = re.findall('.{7}@', f.read())
print results
请注意,以下正则表达式相同:'.{7}@'
,'.......@'
,'.......\x40'
>>> print 0x40, hex(64)
64 0x40
>>> print chr(0x40)
@