我是 Python 的新手,并且坚持使用正则表达式替换。我正在解析一个设置文件,其中包含以下语句:
set fmri(convolve7) 3
设置文件用作模板。该脚本解析模板并使用更新的设置写入一个新的设置文件。
我的程序的主要结构是
for line in infile:
if condition = true
for each in listofelements
if re.search(each, line):
print(re.sub(r"\d+", "0", line), file=outfile, end='') # double output
if re.search(somethingelse, line):
print(re.sub(templatesubid, i, line), file=outfile, end='')# normal substitution
等等
for 循环中的替换会导致双重输出,而在 for 循环之外则不会。for 循环似乎使用正确的替换字符串插入换行符,即
set fmri(convolve7) 0
set fmri(convolve7) 3
其他替换按预期工作,但它是相同的代码。会不会是 for 循环导致了这种双重输出?