在Python中以编程方式在非常大的文件上执行搜索

时间:2015-03-19 04:05:53

标签: python hash

我有一个大小为2.5 GB的文本文件,其中包含一些标准已知文件的哈希值。我的任务是找到我的文件系统上所有文件的哈希值,并将其与存储在文本文件中的哈希值进行比较。如果找到匹配,我需要在屏幕上打印已知,如果没有找到匹配,那么我需要在屏幕上打印未知。

因此,该任务的方法非常简单,但主要问题是该过程中涉及的文件非常庞大。

有人可以建议如何以优化的方式完成这项任务。

我是否应该将包含哈希值的文本文件导入数据库。如果是,那么请提供一些可能帮助我完成它的链接。

其次,我可以使用什么算法进行搜索以加快流程?

我的首选语言是Python。

1 个答案:

答案 0 :(得分:0)

  • 在StackOverflow上搜索代码以递归列出Python中的完整文件名
  • 在StackOverflow上搜索代码以返回文件的哈希校验和

然后使用迭代器函数列出文件。循环内部:

  • 获取循环中当前文件的哈希校验和

  • 遍历每个哈希值。循环内部:

    • 与当前文件的校验和进行比较

算法?别担心。如果你遍历文件的每一行,那就没问题了。只是不要一次性加载它,并且不要将它加载到数据结构中,例如列表或字典,因为你可能内存不足。