Страницы

Поиск по вопросам

понедельник, 19 ноября 2018 г.

Вывод файлов с определённым расширением

У меня есть функция, которая выводит двумерный список файлов с определённым расширением:
def selectfiles(self, dirs):
return [filter(lambda i: '.hdf' in i in i , os.listdir(dirs[x])) for x in range(len(dirs))]
Подскажите, пожалуйста, как её лучше модифицировать, чтобы она выводила не только названия файлов, но и пути к ним?
Т.е. сейчас:
[[tem1.txt, tem2.txt, tem3.txt],[tem10.txt, tem11.txt]]
А нужно:
[[home/test/tem1.txt, home/test/tem2.txt, home/test/tem3.txt],[home/test10/tem10.txt, home/test10/tem11.txt]]


Ответ

Итого, функция из комментария:
@staticmethod def selectfiles(dirs): return [map(lambda i: dirs[x] + '/' + i, filter(lambda i: '.hdf' in i, os.listdir(dirs[x]))) for x in range(len(dirs))]
Этот же алгоритм, но pythonic way
@staticmethod def select_files2(dirs): files = set()
for dir in dirs: for file in os.listdir(dir): if file.endswith('.hdf'): files.add(os.path.join(dir, file))
return [files]

Комментариев нет:

Отправить комментарий