os.walk()
が機能するのと同じように、非再帰的なos.listdir()
ウォークを実行する方法を探しています。しかし、os.walk()
が返すのと同じ方法で戻る必要があります。何か案が?
前もって感謝します。
next(os.walk(...))
ループのファイル名の後にbreak
を追加します。
for root, dirs, filenames in os.walk(workdir):
for fileName in filenames:
print (fileName)
break #prevent descending into subfolders
これは、(デフォルトで)os.walk
は、最初に要求されたフォルダー内のファイルをリストし、次にサブフォルダーに移動します。
私のもう少しパラメータ化された解決策はこれです:
for root, dirs, files in os.walk(path):
if not recursive:
while len(dirs) > 0:
dirs.pop()
//some fency code here using generated list
編集:問題がある場合は修正します。ありがとう、 @ Dirk van Oosterbosch :}
カミッコロが意味したことは、これとより一致していました。
for str_dirname, lst_subdirs, lst_files in os.walk(str_path):
if not bol_recursive:
while len(lst_subdirs) > 0:
lst_subdirs.pop()