簡體   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