我正在从多个文件中获取有关点的信息,并基于模板为每个点创建新文件。有问题的文件看起来像这样
...
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
在记住行数可以不同的情况下,如何使输出看起来与主文件完全一样? (模板还有许多其他$ variables,只是这里未提及)
答案 0 :(得分:0)
我设法使用.join()函数解决了这个问题。
data want;
set have;
array V varr1-varr3;
call SYMPUTN('countxxx',dim(V)) /* here I try set numeric*/
array L[&countxxx.] _temporary_;/* here input numeric*/
* save first rows values in temporary array for use in other rows;
if _n_ = 1 then
do index = 1 to dim(V);
L[index] = V[index];
end;
* … for example … ;
array delta_from_1st [&countxxx.]; * array statement implicitly creates three new variables that become part of PDV and get output;
do index = 1 to dim(V);
delta_from_1st[index] = V[index] - L[index];
end;
run;
给了我预期的结果