2016-12-29 35 views
1

我使用python 2.7并试图搜索文件夹不是文件在Python中加快搜索文件夹路径?

我们为每个项目都有具体的项目编号,并且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() 

回答

1

为什么不执行的linux find命令或在python tree命令(FIND在窗户的情况下)。诸如find之类的命令将使用系统索引,并可能提供更快的结果。

喜欢的东西: - find . -type d -name "A9901001"

Python代码应该是这个样子

import os 
paths = os.system('find . -type d -name "A9901001"') 

注: - 按照只有当你得到了一些性能,因为您最初的做法肯定是更优雅的这个解决方案。

+0

我正在使用Windows,并运行@ hspandher建议的代码。它返回我1。是否有可能获得完整路径? –

1

为什么不只是这个?

def find_directory(): 
    for root, dirs, files in os.walk(path): 
     if "A9901001" in dirs: 
      print(root, "A9901001") 

,如果你有一个蔡斯使用python3:有os.scandir它做类似的事情,但os.walk是NTFS快了很多。

+0

我的python与ArcGIS 10.4链接,我正在使用其实用程序开发ArcGIS工具。有我的文件夹后可以停止循环? –

+0

哦,我明白了。不同的选择是在后台运行目录扫描“离线”;收集一种数据库中的目录名称(例如,只是一个python字典 - 或sqlite或其他)。从那里得到结果应该几乎是瞬间的。您必须不时“走路”目录树以更新“数据库”。 –

相关问题