Приветствую. Задача распарсить файл «/usr/share/X11/xkb/rules/base.lst», в котором находится список доступных раскладок клавиатуры, вариантов языка раскладки, моделей клавиатур и т.д. В принципе, получить желаемое удалось, однако при попытке вывести список всех значений из словаря с вариантами, выводятся далеко не все (из 479 выводятся всего 331). Подскажите пожалуйста, где косяк в коде? Может быть есть другой способ парсинга этого файла и разбивки его на списки по раскладкам, вариантом и т.д?
#!/usr/bin/env python3
layouts = {}
options = {}
variants = {}
models = {}
current = None
with open('/usr/share/X11/xkb/rules/base.lst') as f:
for line in f:
if len(line) < 2:
continue
one, two = line.strip().split(maxsplit=1)
if one == '!':
if two == 'layout':
current = layouts
elif two == 'option':
current = options
elif two == 'variant':
current = variants
elif two == 'model':
current = models
elif current is not None:
current[one] = two
for key, values in variants.items():
print(values)