2013-10-11 32 views
6

私はディレクトリ内のすべてのファイルのリストを再帰的に取得したいと思います。再帰的なos.listdir?

"a.txt"、 "b.txt"、 "d.txt"と "e"を含むディレクトリ "c"、eの中の "f.txt"というディレクトリ~/filesがあるとします。 ['/home/user/files/a.txt', '/home/user/files/b.txt', '/home/user/files/c/d.txt', '/home/user/files/c/e/f.txt']のようなリストを取得するにはどうすればいいですか?あなたが指定した `` d.txt`とf.txt`へ

+0

パスが存在しないので、... – roippi

+0

@roippiは固定、感謝は以下の第二の回答を参照してくださいとだけ削除 – tkbx

+0

print dir_names http://stackoverflow.com/questions/4918458/how-to-traverse-through-the-files-in-a-directory – davecom

答えて

22
import os 
[os.path.join(dp, f) for dp, dn, fn in os.walk(os.path.expanduser("~/files")) for f in fn] 
+4

'〜/files "を' os.path.expanduser( "〜/ files") 'に置き換えます。さもなければ、それはホームディレクトリの代わりにリテラル '〜'ディレクトリを見つけるでしょう。 – falsetru

+0

@falsetru、良い点があります。ありがとう –