私は 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 ループがこの二重出力を引き起こしている可能性はありますか?