Python搜索开始的十六进制字符串,然后将十六进制字符串保存到新的fi

2024-10-03 09:20:49 发布

您现在位置:Python中文网/ 问答频道 /正文

Python

我想打开一个文本文件,搜索一个以453f开头的十六进制模式,获取以下hex6hex值,例如454f5d并将所有这些放入一个新文件中。我也知道它总是以00结束。在

因此该文件可以看起来像:bla bla sdsfsdf 45 3F 08 DF 5D 00 00 dsafasdfsadfsadf45 3F 07 D3 5F 00 00 xztert

应该放在一个像这样的新文件中: 08东风5D 07 D3 5楼

我怎么能做到呢?在

我试过:

output = open('file.txt','r')
my_data = output.read()
print re.findall(r"45 3F[0-9a-fA-F]", my_data)

但它只打印:

[]

有什么建议吗?在

谢谢:-)


Tags: 文件dfoutputdatamy模式opend3
1条回答
网友
1楼 · 发布于 2024-10-03 09:20:49

下面是完整的答案(Python3):

with open('file.txt') as reader:
    my_data = reader.read()

matches = re.findall(r"45 3F ([0-9A-F]{2} [0-9A-F]{2} [0-9A-F]{2})", my_data)
data_to_write = " ".join(matches)
with open('out.txt', 'w') as writer:
    writer.write(data_to_write)

re.findall返回捕获组,因此不需要清除“453f”。在

处理文件时,请使用with open,这样在缩进结束时将释放文件描述符。在

如果要动态接受前两个八位字节:

^{pr2}$

相关问题 更多 >