Как открыть файлы из списка путей к каталогам?

У меня есть список папок, которые мне нужно открыть и прочитать файл .log. Сначала у меня не было списка папок, поэтому я сканировал все файлы в каталоге. Это приведет к избыточности того, для чего я хочу это использовать.

path = '/home/User/Test/'
files = []

# r=root, d=directories, f = files
for r, d, f in os.walk(path):
    for file in f:
        if '.log' in file:
            files.append(os.path.join(r, file))

for f in files:
    log_file = open(f, 'r')

    lines = log_file.readlines()
    log_file.close()

Теперь у меня есть список paths, который выглядит как ['/home/User/Test/folder_test/Process1/Task1/2019-07-31T10%3A30%3A00+00%3A00', ...., 'final_path']

Как я могу перебирать пути, чтобы он открывал папку, а затем извлекал файл .log?

ПРИМЕЧАНИЕ. Я избавляюсь от path = '/home/User/Test/', так как у меня есть список конкретных каталогов.


person Josh    schedule 31.07.2019    source источник
comment
добавив еще один цикл вверху, перебирая список путей?   -  person Corentin Limier    schedule 31.07.2019
comment
Если я правильно понимаю, вы хотите просмотреть другой каталог, и если вы найдете файл журнала, прочитайте файл. Правильно?   -  person Poojan    schedule 31.07.2019
comment
@Poojan, да, я хочу просмотреть каждый каталог в списке, и если я найду файл журнала, прочитаю его.   -  person Josh    schedule 31.07.2019
comment
затем просто измените files.append(os.path.join(r, file)) на logfile = open(os.path.join(r, file));lines = logfile.readlineas();logfile.close()   -  person Poojan    schedule 31.07.2019
comment
@poojan Я думаю, мне нужно изменить первую часть цикла for ... Мне нужен список файлов, поэтому у меня есть пустой список, который я добавляю.   -  person Josh    schedule 31.07.2019
comment
@КорентинЛимиер. Я попытался добавить for path in paths: над циклом. Это действительно имеет смысл, но не работает. Я собираюсь поместить несколько новых тестовых папок в свой каталог. Потому что моя программа делает много разных вещей.   -  person Josh    schedule 31.07.2019
comment
is not working немного широк, отредактируйте свой вопрос, указав точную ошибку. There should be one-- and preferably only one --obvious way to do it. (Дзен Питона)   -  person Corentin Limier    schedule 31.07.2019
comment
@CorentinLimier ... Моя программа в целом сканирует файлы журналов и извлекает ключевую информацию. В настоящее время я просматриваю только те папки, которые были изменены сегодня, чтобы уменьшить избыточность. Я собираюсь добавить новые папки в каталог.   -  person Josh    schedule 31.07.2019
comment
@CorentinLimier Ничего не может добавить в список файлов. Я печатаю, а там пусто. Список не может быть пустым.   -  person Josh    schedule 31.07.2019


Ответы (1)


Я думаю, вы можете использовать библиотеку glob для решения этой проблемы. Это позволяет вам сопоставлять ваши пути с образцом.

person maltodextrin    schedule 31.07.2019