Python从二进制文件中提取日期数据

时间:2013-09-17 10:26:58

标签: python binary hex extraction

我有一个文件,我使用

以二进制格式打开
with open(filename, 'br') as f2
然后我需要提取某些Hex块。代码中会有很多这些“日期”,如下所示:

  

F2 96 E6 20 36 1B E4 40

我需要提取这个的每个实例,以便我完成对它的日期编辑。每个'日期'将以上面的十六进制char 40结束。

我尝试过正则表达式,但这些似乎并不像我想的那样工作。

例如

re.findall(b'............\\\x40', filename)

有人可以帮忙吗?

1 个答案:

答案 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)
@