Итак, вот файл
APPLE: toronto, 2018, garden, tasty, 5
apple is a tasty fruit
>>>end
apple is a sour fruit
>>>end
grapes: america, 24, organic, sweet, 4
grapes is a sweet fruit
>>>end
Этот файл также содержит символы новой строки.Я хочу, чтобы tp создал словарь, используя файл.это выглядит так
функция def f(file_to: (TextIO))-> Dict[str, List[tuple]]
file_to - введенное имя файла, и он возвращает словарь, как,
{'apple': [('apple is a tasty fruit', 2018, 'garden', 'tasty', 5), (apple is a sour fruit)], 'grapes':['grapes is a sweet fruit', 24, 'organic', 5)]}
каждый из фруктов является ключевыми их описание значений в том виде, как они там отформатированы.Каждый фрукт заканчивается на >>> end
Я пытался
with open (file_to, "r") as myfile:
data= myfile.readlines()
return data
, он возвращает строки файла в списке с / n, я думаю, я могу использовать strip (), чтобы удалить это иполучить элемент, который стоит перед ':' в качестве ключей.
Код, который я пробовал:
from pprint import pprint
import re
def main():
fin = open('f1.txt', 'r')
data = {}
key = ''
parsed = []
for line in fin:
line = line.rstrip()
if line.startswith('>'):
data[key] = parsed
parsed = []
elif ':' in line:
parts = re.split('\W+', line)
key = parts[0].lower()
parsed += parts[2:]
else:
parsed.insert(0, line)
fin.close()
pprint(data)
main()
Не дает ожидаемого результата: (