Python 需要优化,以便在大文件夹中更快地搜索

Python 需要优化,以便在大文件夹中更快地搜索,python,search,optimization,Python,Search,Optimization,我有一个包含很多文件的文件夹,我需要优化搜索速度,因为我有超过1k的不同文件要搜索,实际上我使用的是: for path,dirs,files in os.walk('M:/MYFOLDER'): 但在所有文件夹中搜索需要很长时间(超过30分钟)(因为它会逐个文件搜索),但“Windows搜索”需要20秒才能找到它 你知道一些优化搜索并使其更快的技巧吗 谢谢你的提示。你现在是在的土地上,而不是每次都从头开始搜索-做搜索引擎做的事情: 您的数据(预处理,只执行一次,或一段时间执行一次-这假设文

我有一个包含很多文件的文件夹,我需要优化搜索速度,因为我有超过1k的不同文件要搜索,实际上我使用的是:

for path,dirs,files in os.walk('M:/MYFOLDER'):
但在所有文件夹中搜索需要很长时间(超过30分钟)(因为它会逐个文件搜索),但“Windows搜索”需要20秒才能找到它

你知道一些优化搜索并使其更快的技巧吗


谢谢你的提示。

你现在是在的土地上,而不是每次都从头开始搜索-做搜索引擎做的事情:

  • 您的数据(预处理,只执行一次,或一段时间执行一次-这假设文档集合相对稳定-与搜索数量相比变化很小)
  • 每次查询出现时,在索引中搜索以快速找到答案
这种方法将允许您以后不仅返回相关文档,而且还允许您使用一些已经证明有效的启发式方法(如

有一个名为的开源项目,它还有一个可以帮助您实现的工具。Lucene是一个成熟的广泛使用(并经过广泛测试)的信息检索库(例如,用于eclipse搜索)



p.S.如果你发现自己对信息检索更感兴趣,我建议你读一下曼宁的书——它会让你对这个领域有很好的理解——但仅仅应用你的任务并不是必须的。

你可以使用+

Windows搜索作弊;它预先对数据进行索引。换句话说,它使用一个专用的搜索引擎,而您正在进行暴力搜索。@MartijnPieters可以自己索引文件吗(假设他是将文件放在第一位的人,或者运行一次性操作),有没有办法将windows搜索与python一起使用?还是类似的?@黑素:当然;自己编写一个新的搜索引擎。:-)@MartijnPieters啊,我不知道这会是一项艰巨的任务。我想也许有一种简单的方法可以将时间从30分钟缩短到2分钟左右……在使用windows sdk搜索python ctypes后,我有点不知所措,请给我更多信息。cyptes允许调用DLL或共享库中的函数,以及windows Search sdk提供程序(如API)中的函数。我个人没有使用过这种整合,这只是一个建议。我应该在回答中说清楚。我道歉。格雷戈里,如果你最终选择这样做,请告诉我结果如何。:)