在python中加速搜索文件夹路径?
我正在使用Python2.7并尝试搜索文件夹而不是文件 我们对每个项目都有具体的项目编号,每个项目下的项目文件夹都会有evry文档。因此,我们必须搜索项目文件夹是否存在或有效 我的脚本可以找到特定文件夹,但需要很长时间(大约11到13分钟才能完成此过程) 我想分享我的脚本工作,有一些更好的想法在python中加速搜索文件夹路径?,python,python-2.7,Python,Python 2.7,我正在使用Python2.7并尝试搜索文件夹而不是文件 我们对每个项目都有具体的项目编号,每个项目下的项目文件夹都会有evry文档。因此,我们必须搜索项目文件夹是否存在或有效 我的脚本可以找到特定文件夹,但需要很长时间(大约11到13分钟才能完成此过程) 我想分享我的脚本工作,有一些更好的想法 import os path=r"F:\Projekte" def find_directory(): for root, dirs,
import os
path=r"F:\Projekte"
def find_directory():
for root, dirs, files in os.walk(path):
for i in dirs:
if i=="A9901001":
print root
find_directory()
为什么不在python中执行linux
find
命令或tree
命令(find
对于windows)。像find
这样的命令将使用系统索引,并可能给出更快的结果
比如:-
find-类型d-名称“A9901001”
Python代码应该是这样的
import os
paths = os.system('find . -type d -name "A9901001"')
注意:-只有在获得一定性能的情况下才使用此解决方案,因为您的初始方法肯定更优雅。为什么不这样做
def find_directory():
for root, dirs, files in os.walk(path):
if "A9901001" in dirs:
print(root, "A9901001")
如果您有机会使用python3:有一个类似于os.walk的python,但在NTFS上速度更快。我的python与ArcGIS 10.4相链接,我正在使用它的实用程序为ArcGIS开发工具。有没有可能在我拿到文件夹后停止循环?哦,我明白了。另一种选择是在后台“脱机”运行目录扫描;在一种数据库中收集目录名(例如,只是一个python字典或sqlite之类的东西)。从中获得结果应该几乎是立竿见影的。为了更新“数据库”,你必须时不时地
walk
目录树。我正在使用windows并运行your@hspandher建议代码。它返回我1。是否有可能获得完整路径。