我正在使用python 2.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()
答案 0 :(得分:1)
为什么不在python中执行linux find
命令或tree
命令(如果是windows,则为FIND
)。像find
这样的命令会使用系统索引,并且可能会提供更快的结果。
类似的东西: -
find . -type d -name "A9901001"
Python代码看起来应该是这样的
import os
paths = os.system('find . -type d -name "A9901001"')
注意: - 只有在获得一些性能时才能使用此解决方案,因为您的初始方法肯定更优雅。
答案 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上要快得多。