循环路径中的现有目录

时间:2013-01-14 22:12:58

标签: python

我想循环遍历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

2 个答案:

答案 0 :(得分:3)

您正在使用for循环混合生成器表达式。你不能这样做。将if语句放在它自己的行上:

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

请注意,您无需测试is True;这正是if语句已经完成的内容。

答案 1 :(得分:0)

你需要将迭代器的创建与for分开,你可以用一行来完成:

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

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

相关问题