当我在该文件中找到特定字符串时,我想停止阅读。我该怎么办呢。
os.chdir('/root/.jenkins/jobs/pip2/builds/47')
fo = open('log','w+')
答案 0 :(得分:1)
您可以打开文件并使用for
循环逐行阅读:
with open('file') as f:
for line in f:
#read this line
if 'special string' in line:
break
以上代码一次只读取一行。当读取下一行时,前一行将被垃圾收集。
答案 1 :(得分:0)
您可以使用Python的takewhile()
函数读取所有行,直到它与您的特定字符串匹配,如下所示:
import itertools
specific_string = 'line 5'
with open('input.txt') as f_input:
for line in itertools.takewhile(lambda x: x.strip() != specific_string, f_input):
print line,
如果input.txt
包含:
line 1
line 2
line 3
line 4
line 5
line 6
line 7
您将获得以下输出:
line 1
line 2
line 3
line 4
或者为了相反的效果,要查看特定字符串后的所有行,您可以使用dropwhile()
,如下所示:
import itertools
specific_string = 'line 5'
with open('input.txt') as f_input:
for line in itertools.dropwhile(lambda x: x.strip() != specific_string, f_input):
print line,
给你:
line 5
line 6
line 7