Вы можете создать словарь, в котором ключом является имя автора, а значением - список их цитат. Я бы использовал defaultdict
, чтобы сделать вещи проще. Преимущество использования словаря в том, что вы можете иметь неизвестное количество авторов.
from collections import defaultdict
filename = "your_path.txt"
# This is a dictionary of lists
quotes = defaultdict(list)
with open(filename) as f:
lines = f.readlines()
index = 0
while index < len(lines):
try:
author, quote = lines[index].strip().split(':')
# If it doesn't end in quote, keep reading until it does
while not quote[-1] == '"':
index += 1
quote += "\n" + lines[index].strip()
quotes[author].append(quote.strip('"'))
except ValueError:
pass
index += 1
for key, value in quotes.items():
print(f"{key}: {value}")
Вывод будет выглядеть примерно так:
person 1: ['quotes', 'quotes 3']
person 2: ['quotes2', 'quotes 4']
Вы можете изменить запись в файл вместо консоль.