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

Python从二进制文件中提取日期数据,python,binary,hex,extraction,Python,Binary,Hex,Extraction,我有一个文件,我用 with open(filename, 'br') as f2 然后我需要提取某些十六进制块。代码中有很多这样的“日期”,看起来像: F296 E6 20 36 1B E4 40 我需要提取这个的每个实例,以便我在上面完成日期编辑。每个“日期”将以如上所述的十六进制字符40结尾 我试过regex,但这些似乎并不像我想要的那样有效 比如说 re.findall(b'............\\\x40', filename) 有人能帮忙吗?我想你把字节和十六进制表示法搞混了

我有一个文件,我用

with open(filename, 'br') as f2
然后我需要提取某些十六进制块。代码中有很多这样的“日期”,看起来像:

F296 E6 20 36 1B E4 40

我需要提取这个的每个实例,以便我在上面完成日期编辑。每个“日期”将以如上所述的十六进制字符40结尾

我试过regex,但这些似乎并不像我想要的那样有效

比如说

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

有人能帮忙吗?

我想你把字节和十六进制表示法搞混了
0x40
表示整数
64
,它是符号
@
的ascii码

with open(filename, 'rb') as f:
    results = re.findall('.{7}@', f.read())
    print results
请注意,以下regexp是等效的:
'.{7}@'
'.@'
'........。。\x40'

>>> print 0x40, hex(64)
64 0x40
>>> print chr(0x40)
@

为什么正则表达式不起作用?它给你什么输出?另外,请提供更多关于二进制文件格式的详细信息。