有没有办法获取Python中目录中的所有目录而不是文件?

时间:2009-04-08 19:47:11

标签: python directory

这个link正在使用自定义方法,但我只想知道在Python 2.6中是否有一种方法可以做到这一点?

4 个答案:

答案 0 :(得分:5)

没有内置功能只能列出文件,但很容易定义几行:

def listfiles(directory):
    return [f for f in os.listdir(directory) 
              if os.path.isdir(os.path.join(directory, f))]

编辑:已修复,谢谢Stephan202

答案 1 :(得分:3)

如果 a_directory 是您要检查的目录,则:

next(f1 for f in os.walk(a_directory))

来自os.walk()参考:

  

通过从上到下或从下到上走树来生成目录树中的文件名。对于以目录top(包括top本身)为根的树中的每个目录,它会产生一个3元组(dirpath,dirnames,filenames)。

答案 2 :(得分:1)

我不相信有。由于目录也是文件,你必须要求所有文件,然后询问每个文件是否是目录。

答案 3 :(得分:0)

def listdirs(path):
    ret = []
    for cur_name in os.listdir(path):
        full_path = os.path.join(path, cur_name)
        if os.path.isdir(full_path):
            ret.append(cur_name)
    return ret

onlydirs = listdir("/tmp/")
print onlydirs

..或作为列表理解..

path = "/tmp/"
onlydirs = [x for x in os.listdir(path) if os.path.isdir(os.path.join(path, x))]
print onlydirs