45

os.walk()作品と同じように、非再帰的なウォークを行う方法を探していos.listdir()ます。しかし、返品と同じ方法でos.walk()返品する必要があります。何か案が?

前もって感謝します。

4

6 に答える 6

50

breakループのファイル名の後に a を追加します。

for root, dirs, filenames in os.walk(workdir):
    for fileName in filenames:
        print (fileName)
    break   #prevent descending into subfolders

(デフォルトでは)os.walk最初に要求されたフォルダー内のファイルをリストしてからサブフォルダーに移動するため、これは機能します。

于 2016-10-31T19:46:30.087 に答える
42
next(os.walk(...))
于 2010-11-07T12:00:44.837 に答える
6

私のもう少しパラメータ化されたソリューションは次のとおりです。

for root, dirs, files in os.walk(path):  
    if not recursive:  
        while len(dirs) > 0:  
            dirs.pop()  

    //some fency code here using generated list

編集:修正、if/whileの問題。ありがとう、@Dirk van Oosterbosch :}

于 2013-01-30T15:51:28.913 に答える