我有一个巨大的文本文件。我每次找到特定的单词后都会尝试打印一行。
示例:
lines =
"""
match_string
line2_0
somelines
...
...
....
match_string
line_0
...
...
...
match_string
line3_0
.
.
.
.
."""
我的脚本应该找到“match_string”并打印出第一行。
line2_0
LINE_0
line3_0
答案 0 :(得分:5)
您可以从字符串中的行创建迭代器,并在当前行找到匹配项时使用next
打印下一行。然后,for
循环将自动继续使用该行。
iterator = iter(lines.splitlines())
for line in iterator:
if "match_string" in line:
print next(iterator)
或从文件中读取行:
with open("huge_text_file.txt") as file_iterator:
for line in file_iterator:
if "match_string" in line:
print next(file_iterator)
输出:
line2_0
line_0
line3_0
请注意,如果包含StopIteration
的行后面没有next
行,则此可以引发match_string
例外。在这种情况下,只需将代码包装在try/except
块中。