【发布时间】:2016-03-03 04:50:45
【问题描述】:
我正在制作一个从现有文件中删除某些行的程序。它将 file1 作为 entry(f1),它查找某个模式,如果找到它,它会修改该行(以使其与另一个文件兼容)并将此修改保存在变量“mark”中。它打开另一个文件 f2,并在其中搜索“标记”。如果它在 f2 的某一行中找到“标记”,我必须删除该行和之后的三行。问题是,当我运行它时,程序会从 f2 中删除所有内容,因此我得到一个空文件。
new=''
pattern2 = '2:N:0:8'
i=0
f1=open('test_reverse.txt','r')
for line in f1:
if pattern2 in line:
mark=line.replace('2:N:0:8','1:N:0:8')
f2=open('test_OKforward2.txt','r')
lines=f2.readlines()
for i, line in enumerate(lines):
if mark in lines[i]:
e=lines[i]
e1=lines[i+1]
e2=lines[i+2]
e3=lines[i+3]
new=e+e1+e2+e3
f3=open('test_OKforward2.txt','w')
if line!=new:
f3.write(line)
我也尝试了 next() 函数,但得到了相同的结果和“停止迭代”错误。
【问题讨论】:
-
请记得回来并接受您认为对您最有用的答案。它对您、那些试图回答您问题的人以及整个社区都有好处。这就是我们在这里说“谢谢”的方式。
标签: python file lines readlines