Добавление не имеет смысла для словаря так же, как и для списка. Вместо этого более разумно говорить о вставке и удалении ключа / значений, так как нет « end » для добавления - дикт неупорядочен.
Исходя из вашего желаемого результата, похоже, что вы хотите, чтобы у вас был набор слов (например, {filename : { symbol : { key:value }}
). Я думаю, что вы можете получить это из своего ввода с помощью чего-то вроде:
import re
header_re = re.compile('Symbols from (.*):')
def read_syms(f):
"""Read list of symbols from provided iterator and return dict of values"""
d = {}
headings=None
for line in f:
line = line.strip()
if not line: return d # Finished.
if headings is None:
headings = [x.strip() for x in line.split()]
continue # First line is headings
items = [x.strip() for x in line.split("|")]
d[items[0]] = dict(zip(headings[1:], items[1:]))
return d
f=open('input.txt')
d={}
for line in f:
m=header_re.match(line)
if m:
d[m.group(1)] = read_syms(f)