2つのディレクトリに最初にファイルを入れ、2番目にファイルを大きくすると、問題が発生します。 iglob大量のファイルに対しては、これは機能しません。2つのディレクトリを反復するときにpython globとiglob
large_n_files = glob.iglob(pathtodir)
small_n_files = glob.iglob(pathtootherdir)
for s in small_n_files:
for l in large_n_files:
print(l,s)
利回り私はlarge_n_filesためglob
に切り替えると、私は私が望む結果を得る
l1 s1
l2 s1
l3 s1
(例えばsmall_n = 2、large_n = 3と仮定)、すなわち
large_n_files = glob.glob(pathtodir)
small_n_files = glob.iglob(pathtootherdir)
for s in small_n_files:
for l in large_n_files:
print(l,s)
収量
l1 s1
l2 s1
l3 s1
l1 s2
l2 s2
l3 s2
なぜそうですか? (私はイテレータについてもっと学ばなければならないと思います...)もしこれを本当にたくさんのファイルに使用したいのであれば、それほど効率的ではありませんか?これを回避するにはどうしたらいいですか?