我在文件中有以下几行。我想在找到特定字符串后读取文件。
This is 1st line
This is 2nd line
This is 3rd line
This is 4th line
This is 5th line
如果找到字符串“3”,我想将此后的所有行复制到另一个文件中。
我的输出应该是:
This is 3rd line
This is 4th line
This is 5th line in another file.
我的代码是:
file1=open("file1.txt","r")
file2=open("file2.txt","w")
line=fo.readlines()
for line in lines:
if "3" in line:
print line
file2.write(line)
它只打印这一行 “This is 3rd line” 它不打印这一行之后的所有行??
请您参考如下方法:
这是一个完全初学者会问的问题,所以我会分解一下,请不要觉得受到侮辱。
您需要在您的程序中引入一个状态。这个状态会告诉循环它是否总是打印,你可以通过设置一个变量来做到这一点:
file1 = open("file1.txt","r")
file2 = open("file2.txt","w")
always_print = False
lines = fo.readlines()
for line in lines:
if always_print or "3" in line:
print line
file2.write(line)
always_print = True
关键是您的程序可以处于两种状态,一种是您已找到您关心的行,另一种是您尚未找到它。你表示这一点的方式是使用变量。通过检查该变量,您可以确定是否应该执行任何特定操作。
希望这不会太困惑。
