Skip to main content
 首页 » 编程设计

python之在python中找到特定字符串后如何打印所有行

2025年05月04日21java哥

我在文件中有以下几行。我想在找到特定字符串后读取文件。

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 

关键是您的程序可以处于两种状态,一种是您已找到您关心的行,另一种是您尚未找到它。你表示这一点的方式是使用变量。通过检查该变量,您可以确定是否应该执行任何特定操作。

希望这不会太困惑。