从物理dri中提取字符串

2024-10-04 07:31:00 发布

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

我希望用python2.x编写一个脚本,它将扫描物理驱动器(物理的和非逻辑的)以查找大小不等的特定文本字符串(聊天工件)。我有字符串的页眉和页脚,所以我想知道怎样才能最好地扫描驱动器?我担心的是,如果我把它分成,比如说250MB的块,并在解析页眉和页脚之前将这些数据读入RAM,那么可能是页眉在那里,但页脚在下一个250MB的块中。在

所以本质上,我想扫描PhysicalDevice0,寻找以“ABC”开头、以“XYZ”结尾的字符串,并从中复制所有内容。我不确定是把数据扫描成ascii还是十六进制。在

随着驱动器越来越大,我希望以最快的方式来实现这一点。在

有什么建议吗?在


Tags: 数据字符串文本脚本物理逻辑ram页脚
1条回答
网友
1楼 · 发布于 2024-10-04 07:31:00

你的问题可以表述为“如何在一个没有行结构的非常长的文件中搜索”这与你一次读取一行面向行的文本没有什么不同:假设你正在逐块读取一个文本文件,但是有一个面向行的regexp进行搜索;你将搜索到最后一个完整的行你读过的块,然后抓住最后一个不完整的行,读另一个块来扩展它。所以,你不会重新开始每读一个新的块。把它想象成一个滑动窗口;你只需推进它来丢弃你能够完全搜索到的部分。在

在这里做同样的事情:编写代码,这样匹配的字符串就不会碰到缓冲区的边缘。E、 g.如果你要搜索的标题是100字节长:读取一个文本块;检查块中是否出现complete模式;将阅读窗口提前到当前块末尾之前100个字节,并在其后面添加新块的文本值。现在您可以搜索标题,而不会丢失它。一旦找到它,就提取文本,直到看到停止模式(页脚)。如果你的代码块在五块模式下被发现了,那就停止它。在

相关问题 更多 >