【发布时间】:2021-11-04 16:17:51
【问题描述】:
我正在尝试遍历一个文件夹,在其中,我将拥有多个其他文件夹,每个文件夹都可以包含其他子文件夹。树的一个例子可能是:
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
关于如何阻止它读取子文件夹的任何建议?提前致谢。
【问题讨论】:
-
如果不想递归,则不需要使用
os.walk()。 -
_, mainfolders, _ = next(os.walk(data_directory)) -
感谢@blorgon 的建议,运行良好,但如果像我这样在服务器上运行会有点计算量。
-
@JohnGordon 的回答非常适合我的情况,谢谢。
标签: python python-3.x list operating-system