1

私はPythonを初めて使用しますが、C#の経験はかなりあります。私が気に入っているものの1つは、Linq-Frameworkで入手できるツールのセットです。したがって、私はPythonで同等のものを探していましたが、いくつかの試みがあるようです。私が仕事に就けず、とにかく死んだように見えるpynqの他に、itertoolsにはその方向に進むためのいくつかのオプションがあることがわかりました。しかし、私はそれを機能させるのにまだ問題があります。私が欲しいのは、ディレクトリではないディレクトリ内のエントリのリストです。はい、これを行うには他にもおそらくもっと良い方法がたくさんあると確信していますが、同様の問題が他の場所でも発生する可能性があるため、itertoolsを使用してこの問題を解決したいと思います。

import os, itertools

listing = os.listdir(".")
filteredfiles = itertools.ifilterfalse(lambda dirContent: os.path.isdir(dirContent), listing)
for f in filteredfiles:
    print "found file: " + f

これにより、ディレクトリの完全なコンテンツが出力されます。ifilterfalseをifilterに置き換えると、結果として空のリストが表示されます。

os.path.isdir(...)の複雑な呼び出しでは機能していないと推測できますが、よくわかりません。

誰か私に答えてもらえますか?基本的に、上記で述べたように、IterablesをフィルタリングするためのLinqのような可能性が必要です。私はループが好きではありません。彼らは私をめまいにさせます。;-)

4

1 に答える 1

1

チェックする前に、フルパス名を作成する必要があります。

os.path.isdir(os.path.join(path, dirContent))
于 2012-10-18T20:19:37.893 に答える