ディレクトリのリストを作成してその中のファイルを読み取る場合、ディレクトリ内のすべてのファイルのリストを返す場合と比較して、yield のパフォーマンスが低下し始めるのはどの時点ですか?
ここでは、(潜在的に巨大な) リストを返すのに十分な RAM があると想定しています。
PS コメント内のコードのインライン化に問題があるため、ここにいくつかの例を示します。
def list_dirs_list():
# list version
return glob.glob(/some/path/*)
def list_dirs_iter():
# iterator version
return glob.iglob(/some/path/*)
舞台裏では、 glob への両方の呼び出しが os.listdir を使用するため、パフォーマンス的には同等のように見えます。しかし、この Python docは、glob.iglob の方が高速であることを暗示しているようです。