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