Вы должны поместить записи в словарь, а не в такое количество отдельных переменных - ясно, что используемые вами ключи должны НЕ быть приемлемыми в качестве имен переменных (с косой чертой в «Url / Host»). может быть убийцей! -), но они будут просто хороши как строковые ключи в словаре.
import re
there = re.compile(r'''(?x) # verbose flag: allows comments & whitespace
^ # anchor to the start
([^:]+) # group with 1+ non-colons, the key
:\s* # colon, then arbitrary whitespace
(.*) # group everything that follows
$ # anchor to the end
''')
, а затем
configdict = {}
for aline in open('thefile.txt'):
mo = there.match(aline)
if not mo:
print("Skipping invalid line %r" % aline)
continue
k, v = mo.groups()
configdict[k] = v
возможность сделать шаблоны RE "многословными" (начав их с (?x)
или используя re.VERBOSE
в качестве второго аргумента re.compile
), очень полезна для того, чтобы вы могли уточнить свои RE с помощью комментариев и приятного выравнивания пробельные. Я думаю, что он, к сожалению, недостаточно используется; -).