У меня есть функция, которая выводит двумерный список файлов с определённым расширением:
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]
Комментариев нет:
Отправить комментарий