数据雕刻循环改进

2024-04-20 10:46:45 发布

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

我目前有一个Python应用程序,我正在开发,将数据雕刻块设备的jpeg文件。让我们假设它有时起作用,有时不起作用。我创建了它,以便读取块设备,直到找到ffd8,然后保持流打开并通过循环搜索ffd9闭包。尽管我总是需要考虑到所有的ffd9闭包,即使在第一个闭包之后。所以这是一个非常密集的手术。假设一个设备有25个jpeg文件以及大量的其他数据,这个循环是非常有戏剧性的,它运行了很多次。在

这个程序不是世界上最慢的,但我认为它可以更快、更有效。我正在寻找一种更好的方法来搜索块设备,并以更有效的方式提取数据。我也不想杀死硬盘驱动器或保存块设备图像的驱动器。在

那么,有没有人知道一种更好的方法来系统地处理数据的搜索和提取?在


Tags: 文件数据方法程序应用程序方式世界jpeg
1条回答
网友
1楼 · 发布于 2024-04-20 10:46:45

直接读取块设备的问题是不能保证任何给定文件的块是连续的。这意味着,即使在块13中找到了魔术标记字节0xFFD8,也不能保证块14属于同一个文件,不管它是否包含0xFFD9结束标记。(大多数文件将从块边界开始;文件的结尾可能在任何位置,甚至可能跨越块边界。)

最好的办法是什么?好吧,这取决于您想要的是什么——但是如果您只查看当前分配的块,那么使用POSIXC函数ftw(nftw)的Python模拟扫描文件系统,然后依次读取每个文件。这不会在免费列表中找到删除的JPEG文件的证据-如果这是你所追求的,那么你需要做你正在做的,或多或少,但把这些信息与你在文件系统中找到的信息相关联。映射这些块(最多)会很困难。在

相关问题 更多 >