0
接尾辞とディレクトリパスを指定すると、指定した接尾辞で終わるディレクトリ内のファイルの完全なパスを抽出する必要があります。ディレクトリ内のファイルをフィルタリングしてディレクトリパスに参加する方法 - Python
現在、私はそのようにやっている:
import os
dir_path = '/path/to/dir'
suffix = '.xyz'
filenames = filter(lambda x: x.endswith(suffix), os.listdir(dir_path))
filenames = map(lambda x: os.path.join(dir_path, x), filenames)
私もglob
でそれを行うことができます:
import glob
dir_path = '/path/to/dir'
suffix = '.xyz'
glob.glob(dir_path+'*.'+suffix)
私はPurePath
を使用してサフィックスを確認することができpathlib
もありますことを理解しますが私はその構文が何であるか分かりません。
ファイルへの完全なパスの同じフィルタリングされたリストを達成する他の方法はありますか?
ディレクトリ内の1,000,000個のファイルを指定すると、 'filter' +' map'はリスト内包よりも速くなるか、またはその逆が成り立ちますか?または彼らは同じだろうか? – alvas
'filter()'が1つのリストを作成し、 'map()'が別のリストを作成すると、リストの解説がより速くなると賭けるでしょう。そのような数で、発電機を使う方法を見つけることは賢明かもしれません。 – msvalkon
実際には、リストを作成することはありません。フィルタとマップの両方がジェネレータを返します。 – alvas