Python:使用re.substitute作为模板时保持行格式(breaklines)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python:使用re.substitute作为模板时保持行格式(breaklines)相关的知识,希望对你有一定的参考价值。

我正在从多个文件中获取有关点的信息,并根据模板为每个点创建新文件。有问题的文件看起来像这样

...
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" { 
  info 
  info 
  info 
  info 
 }']

我使用.substitute将信息插入模板。模板看起来像这样

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

输入代码时

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

如何让我的输出看起来与主文件中的完全一样,请记住线条数量可能有所不同? (模板有很多其他$变量,这里没有提到)

答案

我设法通过使用.join()函数来解决这个问题。 point_info =''.join(point_info)给了我预期的结果

以上是关于Python:使用re.substitute作为模板时保持行格式(breaklines)的主要内容,如果未能解决你的问题,请参考以下文章

Python中负数的模运算

python设计模式之代理模

Python笔记-取模运算%

欧几里得算法解决 RR' - NN' = 1. 使用蒙哥马利算法进行模幂运算以在 python 或 Petite Chez 方案中实现费马检验

Python 函數與常用模組 - 迭代器

python python中的模运算