私は与えられたパスの下のすべてのファイルに対して何かをしようとしています。私は、事前にすべてのファイル名を収集し、それらに何かをしたくないので、私はこの試みた:再帰関数の収穫
import os
import stat
def explore(p):
s = ''
list = os.listdir(p)
for a in list:
path = p + '/' + a
stat_info = os.lstat(path)
if stat.S_ISDIR(stat_info.st_mode):
explore(path)
else:
yield path
if __name__ == "__main__":
for x in explore('.'):
print '-->', x
をしかし、それは代わりにその内容を生み出すのは、それらをヒットしたときに、このコードは、ディレクトリをスキップ。私は間違って何をしていますか?
一部の言語では、個々の要素だけでなく、シーケンス全体が得られます。私はPythonもその一つだとは思わない。 http://www.mindscapehq.com/blog/index.php/2011/02/28/recursive-iterators-in-f/ – Leonid
タイトルはos.walkで解決できるよりも一般的な問題を示唆しているので、これを考慮してください: DEF(P)探検:Pにおけるxの :(P、(リスト、タプル))でisinstance場合 を は他 (p)を探る: 利回りのp は、これは、同じ問題を抱えています。それはなぜ機能しないのですか? – JimB