Парсинг txt и вывод по шаблону
Есть txt файл где в каждой строке Имя Фамилия Почта. Необходимо распарсить txt файл, загрузить в словарь и потом через цикл подставить каждое значение в шаблон вида
config user local
edit "ФИО1"
set type ldap
set email-to "ПОЧТА1"
set ldap-server "LDAPS"
next
end
config user local
edit " ФИО2"
set type ldap
set email-to "ПОЧТА2"
set ldap-server "LDAPS"
next
end
и так далее.
На выходе будет уже готовый файл с таким длинным списком. Пример файла для парсинга
Pupkin Vladimir [email protected]
Ivanov Ivan [email protected]
Специально сделал отступ от фамилии и почты 2 знака.
Ответы (2 шт):
Автор решения: Zhihar
→ Ссылка
попробуйте такой код:
res = ""
with open("file.txt") as file:
lines = file.readlines()
lines = [line.rstrip() for line in lines]
for line in lines:
components = line.split()
res += f'fconfig user local\n edit "{" ".join(components[:2])}"\n set type ldap\n set email-to "{components[2]}"\n set ldap-server "LDAPS"\n next\nend\n'
print(res)
Автор решения: GrAnd
→ Ссылка
Можно заставить регексп сделать всю работу.
import re
template = r'''config user local
edit "\g<name>"
set type ldap
set email-to "\g<email>"
set ldap-server "LDAPS"
next
end'''
#with open("file.txt") as f:
# text = f.readlines()
text = '''Pupkin Vladimir [email protected]
Ivanov Ivan [email protected]'''
res = re.sub(r'^\s*(?P<name>.+)\s+(?P<email>[^\s]+)\s*$', template, text, flags=re.M)
print(res)