在python中加速搜索文件夹路径?

在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,

我正在使用Python2.7并尝试搜索文件夹而不是文件

我们对每个项目都有具体的项目编号,每个项目下的项目文件夹都会有evry文档。因此,我们必须搜索项目文件夹是否存在或有效

我的脚本可以找到特定文件夹,但需要很长时间(大约11到13分钟才能完成此过程)

我想分享我的脚本工作,有一些更好的想法

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。是否有可能获得完整路径。