【发布时间】:2016-09-21 14:30:16
【问题描述】:
我想编写一个python脚本来替换我的模式后多行中的第一个单词,现在我只能替换我的模式后的一行,它如何替换更多的行?比方说3行。
lines.txt(输入文件,模式“第 2 节”):
section 1
line 1
line 2
line 3
line 4
endsection
section 2
line 1
line 2
line 3
line 4
endsection
section 3
line 1
line 2
line 3
line 4
endsection
lines_mod.txt(我当前代码的结果):
section 1
line 1
line 2
line 3
line 4
endsection
section 2
mod 1
line 2
line 3
line 4
endsection
section 3
line 1
line 2
line 3
line 4
endsection
这是我的 python 脚本:
with open('E:/lines.txt') as fin, open('E:/lines_m.txt', 'w') as fout:
flag = 0
for line in fin:
if flag == 1:
mod_line = 'mod ' + line.split()[-1] + '\n'
fout.write(mod_line)
flag = 0
continue
fout.write(line)
if line.find('section 2') != -1:
flag = 1
感谢您的帮助。
【问题讨论】:
-
是因为你在找到
'section 2'之后把你的flag设置为0,然后写一行文件出来。你再也找不到第 2 节了。如果你想继续修改第 2 节的所有内容。不要在写一行之后设置flag = 0,而是在你点击endsection之后设置它 -
请更新代码的缩进。
-
@MooingRawr:我不想替换“第 2 节”中的所有行,我只想替换其中的一些。
-
@Tian 然后有一个行数计数器
-
@MooingRawr:我对编程和 python 很陌生。你能给我看看柜台的东西吗?谢谢
标签: python python-2.7