Учитывая суффикс и путь к каталогу, мне нужно извлечь полный путь к файлам в каталоге, который заканчивается данным суффиксом.Способы фильтрации файлов в каталоге и пути к каталогу соединений - 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)
Я понимаю, что есть также pathlib
, что можно проверить суффиксов с помощью PurePath
но Я не уверен, для чего это синтаксис.
Существуют ли другие способы получения одинакового отфильтрованного списка полных путей к файлам?
Короткий вопрос, учитывая, что 1 000 000 файлов в каталоге, будет 'filter' +' map' быть быстрее, чем понимание списка, или наоборот? Или они будут такими же? – alvas
Учитывая, что 'filter()' создаст один список, а 'map()' another, я бы поставил, что понимание списка выполняется быстрее. Хотя, с такими цифрами, может быть разумнее выяснить способ использования генератора. – msvalkon
На самом деле, они не будут создавать списки, как генераторы фильтра, так и карты. – alvas