0

我想遍历 Python 路径中的所有目录。所以我尝试了以下方法:

import os, glob, sys

os.chdir('/')
dir_list = glob.glob('*')
for wd in dir_list if os.path.isdir(wd) is True:
    print(wd + " is a directory.")

似乎我有某种syntax error. 我应该做什么而不是is True?我曾以为os.path.isdir()返回一个boolean.

4

2 回答 2

3

您正在将生成器表达式与 for 循环混合。你不能那样做。将if声明放在它自己的行上:

for wd in dir_list:
    if os.path.isdir(wd):
        print(wd + " is a directory.")

请注意,您不需要测试is True; 这正是该if声明所做的。

于 2013-01-14T22:14:18.400 回答
0

您需要将迭代器的创建与 分开for,您可以在一行中这样做:

for wd in (x for x in dir_list if os.path.isdir(x)):

我不认为好看,我想如果你在前一行做会更好,但无论如何都是你的电话。

于 2013-01-14T22:58:58.070 回答