首页 > 解决方案 > 仅在使用 python 的目录中获取第一个文件夹的名称

问题描述

我正在尝试遍历一个文件夹,在其中,我将拥有多个其他文件夹,每个文件夹都可以包含其他子文件夹。树的一个例​​子可能是:

Dataset_Directory
  | Folder A
  | Folder B
  | Folder C
  | Folder D
      | Folder D1
      | Folder D1
  

我想要做的是只得到男人 4 个犯规者,即 A、B、C、D 并忽略任何子文件夹。

我的代码:

    folders = [os.path.basename(os.path.normpath(x[0])) for x in os.walk(
        app.config['DATASET_DIRECTORY']) if x[0] != 'static\Dataset_Directory']

    for folder in folders:
        print(folder)

这将输出列表中的所有文件夹和子文件夹,因为 os.walk 从目录树中获取所有内容。输出如下:

Folder A
Folder B
Folder C
Folder D
Folder D1
Folder D2

我想要达到的只是

Folder A
Folder B
Folder C
Folder D

关于如何阻止它阅读子文件夹的任何建议?提前致谢。

标签: pythonpython-3.xlistoperating-system

解决方案


您还可以使用 pathlib 库,如下所示:

from pathlib import Path
print([x.name for x in Path('Dataset_Directory').iterdir() if x.is_dir()])  

产量:

['Folder A', 'Folder C', 'Folder D', 'Folder B']

推荐阅读