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ように 1 行で実行できます。

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

見栄えが良いとは思いません。前の行でそれを行う方が良いと思いますが、とにかくあなたの呼び出しです。

于 2013-01-14T22:58:58.070 に答える