我编写了以下用于在您的计算机上搜索文件的代码:
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()
您可能已经注意到此程序速度不够快。
那么有人可以帮我制作一个更快,更有效的程序版本吗?
谢谢!
答案 0 :(得分:1)
您无法对此程序进行太多改进 - 任何静态文件搜索都必须执行此类操作。通过添加大量复杂性并使其并行,您可以通过一次遍历文件系统的不同部分来更快地工作,并且可能更早地启用“幸运命中”。
专为快速搜索文件系统而设计的应用程序和实用程序通常需要索引数据库中的所有文件系统内容 - 并且它们会在后台持续执行,或者在一天中的固定时间执行此操作。因此,当有搜索时,他们只是对该数据库执行查询。
然而,这个解决方案会多次增加小程序的复杂性 - 而且在这里写一个答案太复杂了;
答案 1 :(得分:1)
减少打印报表的数量应该会显着提高速度。如果需要跟踪文件,可以将结果写入日志文件。