繁体   English   中英

Python文件搜索程序不够快

[英]Python file search program not fast enough

我编写了以下代码来搜索您计算机上的文件:

import os, sys
import win32api

x=raw_input("Enter file name: ")

drives = win32api.GetLogicalDriveStrings()
drives = drives.split('\000')[:-1]
for drive in drives:
    for folderName, subfolders, filenames in os.walk(drive):
        for filename in filenames:
            if x.upper() in filename:
                print"FILE FOUND!"
                print('FILE INSIDE ' + folderName + ': '+ filename)
            elif x.lower() in filename:
                print"FILE FOUND!"
                print('FILE INSIDE ' + folderName + ': '+ filename)
            elif x.capitalize() in filename:
                print"FILE FOUND!"
                print('FILE INSIDE ' + folderName +': '+ filename)
a=raw_input("Press any key to exit.")
sys.exit()

您可能已经注意到,该程序不够快。

那么,有谁能帮助我制作一个更快,更高效的程序?

谢谢!

您不能对此程序进行太多改进-任何静态文件搜索都必须执行此类操作。 通过增加很多复杂性并使其并行,您可以一次遍历文件系统的不同部分,并可能更早地启用“幸运命中”,从而使其运行更快。

专为快速搜索文件系统而设计的应用程序和实用程序通常采用索引数据库中所有文件系统内容的方式,并且它们会在后台连续或在一天的固定时间进行索引。 因此,当进行搜索时,他们只需对该数据库执行查询。

但是,该解决方案将使您的小程序的复杂性提高数倍-太复杂而无法在此处编写答案。

减少打印语句的数量应显着提高速度。 如果需要跟踪文件,则可以将结果写入日志文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM