ディレクトリとその中のネストされたディレクトリをループしようとしています。再帰はそれを行う良い方法のように思えました。
私はこのコードで終わった:
def get_file_list(directory=os.getcwd()):
for i in os.listdir(directory):
if os.path.isdir(i):
get_file_list(i)
continue
print i
これにより、すべてが美しく印刷されます-まさに私が期待した出力です。ただし、このファイルのリストを別の関数に渡してさらに処理したいと考えました。それで、すべてをリストにまとめてみました。
def get_file_list(directory=os.getcwd()):
files = []
for i in os.listdir(directory):
if os.path.isdir(i):
get_file_list(i)
continue
files.append(i)
return files
問題は、現在の作業ディレクトリからのみファイルを返すことです。少し考えた後、これはスコーピングの問題だと思います。が呼び出されるfiles
たびに、一意のメモリに新しい変数が作成されますよね? get_file_list()
では、このようなことをどのように回避しますか? ネストされた呼び出しからの結果をどのように組み立てますか?