我想循环遍历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
。
答案 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)):
我认为看起来并不好看,我想如果你在前一行中这样做会更好,但无论如何都是你的电话。