Создайте список, в котором первый параметр - это имя файла, а второй параметр - первая строка файла. - PullRequest
0 голосов
/ 14 июля 2020

Я хочу создать список, в котором первый параметр - это имя файла, а второй - первая строка этого файла. Я уже извлек имена файлов и первые строки в два отдельных списка:

import os

path = 'E:\Python Stuff\logtest\logs'

files = []
firstlines = []
# 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:
    with open(f) as fl:
        line = fl.readline().partition(".")
        firstlines.append(line[0])

Как я могу объединить оба вместе? Хочу как list = [filename : firstline],[filename : firstline],..

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

проверьте этот сладкий однострочник, поскольку вы уже создали два списка

dict(zip(first_list, second_list))

, он создает словарь на основе двух списков, заархивированных вместе. Это должно работать прямо в вашем коде

merged_dict = dict(zip(files, firstlines))

, это будет выглядеть так: {"filename1": "firstline1", "filename2": "firstline2", ET C ...}

вы можете работать с этим merged_dict следующим образом:

for key, value in merged_dict.items():
    print(key, value)
0 голосов
/ 14 июля 2020

Это должно сработать для вас:

my_list = []
for i in range(len(files)):
    my_list.append([files[i],firstlines[i]])

если вы хотите использовать структуру "ключ-значение", тогда вам нужно использовать словари Python . Это могло бы выглядеть так:

my_dict = {}
for i in range(len(files)):
    my_list[files[i]] = firstlines[i]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...