获取当前目录中所有子目录的列表

Posted

技术标签:

【中文标题】获取当前目录中所有子目录的列表【英文标题】:Getting a list of all subdirectories in the current directory 【发布时间】:2010-11-01 16:32:00 【问题描述】:

有没有办法在 Python 中返回当前目录中所有子目录的列表?

我知道您可以对文件执行此操作,但我需要获取目录列表。

【问题讨论】:

docs.python.org/3.4/library/os.html?highlight=os#os.listdirdocs.python.org/3.4/library/os.path.html#os.path.isdir 如果您正在寻找 pathlib 解决方案,请执行 [f for f in data_path.iterdir() if f.is_dir()] 信用:***.com/a/44228436/1601580。这为您提供了字符串文件夹名称。不知何故,它也排除了 ... 感谢上帝。 Glob 解决方案也很有价值:glob.glob("/path/to/directory/*/"). 【参考方案1】:

这应该可以工作,因为它还创建了一个目录树;

import os
import pathlib

def tree(directory):
    print(f'+ directory')
    print("There are " + str(len(os.listdir(os.getcwd()))) + \
    " folders in this directory;")
    for path in sorted(directory.glob('*')):
        depth = len(path.relative_to(directory).parts)
        spacer = '    ' * depth
        print(f'spacer+ path.name')

这应该列出使用pathlib 库的文件夹中的所有目录。 path.relative_to(directory).parts 获取相对于当前工作目录的元素。

【讨论】:

【参考方案2】:
import os
path = "test/"
files = [x[0] + "/" + y for x in os.walk(path) if len(x[-1]) > 0 for y in x[-1]]

【讨论】:

以上是关于获取当前目录中所有子目录的列表的主要内容,如果未能解决你的问题,请参考以下文章

#### 批处理命令 获取当前目录下所有文件的路径

我如何以编程方式确定 Github 目录页面中所有当前存在的目录?

python ftplib.FTP 获取当前路径下所有目录

获取当前目录中的文件个数

os.walk获取目录中所有文件

内置模块应用列表