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)的主要内容,如果未能解决你的问题,请参考以下文章
欧几里得算法解决 RR' - NN' = 1. 使用蒙哥马利算法进行模幂运算以在 python 或 Petite Chez 方案中实现费马检验