Python: сохраняйте форматирование строк (разрывы) при использовании re.substitute для шаблона - PullRequest
0 голосов
/ 27 марта 2019

Я беру информацию о точках из нескольких файлов и создаю новые файлы для каждой точки на основе шаблона.Проблемный файл выглядит следующим образом:

...
Point number:"Number" {
 info
 info
}
...
Point number:"Number" {
 info
 info 
 info
 info
}
...
etc

Количество строк с информацией может варьироваться.

Я использую re.findall () для поиска точек, подобных этой

point_info = re.findall(r"(?ms)^P.*?{$.*?^};$", file.read())

Но когда я пытаюсь вставить это в свой шаблон, я получаю

['Point number:"Number" { \n  info \n  info \n  info \n  info \n }']

Я использую .substitute, чтобы вставить информацию в шаблон.Шаблон выглядит следующим образом:

Template
... 
...
...
$point_info 
...
...

В то время как входной код

d = {'point_info ': point_info }
result = src.substitute(d)
output_file.write(result) #opened beforehand

Как я могу сделать так, чтобы мой вывод выглядел точно так же, как в основном файле, учитывая, что количество строк может отличаться?(в шаблоне есть много других переменных $, но здесь они не упомянуты)

1 Ответ

0 голосов
/ 27 марта 2019

Мне удалось решить эту проблему с помощью функции .join ().point_info =''.join(point_info) дал мне ожидаемый результат

...