2011-07-12 8 views
3

私はこれを簡単に実行する方法を考えることができますが、最も有名なのは何ですか?私はos.listdirのファイルリストを取得し、いくつかはディレクトリかもしれません。ファイルリストからディレクトリを削除するPythonの方法

ループ内でそれぞれを調べて、os.isdirがfalseを返すかどうかを確認してから、リストから削除することができます。これを書くにはどうしたらいいですか?

答えて

6
[x for x in os.listdir(...) if not os.path.isdir(os.path.join(..., x))] 
4
files = filter(lambda f: os.path.isfile(os.path.join(path, f)), os.listdir(path)) 

OR

files = [f for f in os.listdir(path) if not os.path.isdir(os.path.join(path, f))] 

編集は:(os.path.joinへの呼び出しで追加)イグナシオの答えあたりの削除バグ

+0

1関数型プログラミングのための。 – Evpok

+0

ですが、機能しないプログラミングの場合は-1(Ignacioが示唆するように、path.joinが見つかりませんでした)。フィルタ(lambda f:os.path.isfile(os.path.join(path、f))、os.listdir(path))のようになります。 – Luke

関連する問題