Python" Walk"目录,最大深度

时间:2015-01-28 19:01:32

标签: python directory traversal

所以我已经看过很多关于这个主题的文章,但是答案到处都是,我只是想找到一个最有效的方法来遍历一个maxdepth为1的目录。即如果给出了“/ home” / user / desktop / test /“,我希望能够操作和使用该目录中的所有目录,但不能更低。

我看到有人说要使用walklevel()功能,使用os.listdir()一些技巧,或使用.next()的{​​{1}}功能。什么是Pythonic /高效的方法呢?

全部谢谢!

2 个答案:

答案 0 :(得分:1)

嗯,最Pythonic和最有效(关于时间)可能不是一回事,而“Pythonic”通常可以转化为意见问题,但最直接的,Pythonic方式可以做到这一点在我看来如下:

import os

def contained_dirs(dir):
    return filter(os.path.isdir,
                  [os.path.join(dir, f) for f in os.listdir(dir)])

这是直接在目标目录中获取所有目录列表的一种非常简单的方法。这就是你要找的东西吗?

答案 1 :(得分:0)

如果您只需要给定路径中的目录而没有其他,则需要列出路径是什么,并检查您何时访问目录

top_level = '/home/user/desktop/test/'
for path in os.listdir(top_level):
    directory = os.path.join(top_level, path)
    if os.path.isdir(directory)
        do_something_with_dir(directory)