我试图在每次搜索匹配后在文本文件中打印第13行。意味着每次在文本文件中找到搜索模式时,都应该在找到的搜索文本中打印下一行第13行。
我现在使用的Code仅打印搜索匹配的当前行。有人可以帮我在每次比赛后打印第13行吗?
import sys
import re
com=str(sys.argv[1])
with open("/tmp/sample.txt", 'r') as f:
for line in f:
if com in line:
print (line)
答案 0 :(得分:1)
最简单的方法是一次读取所有行,然后搜索并打印:
import sys
import re
com=str(sys.argv[1])
with open("/tmp/sample.txt", 'r') as f:
lines = f.readlines()
for index, line in enumerate(lines):
if com in line:
print lines[index+13]
当然,假设还有一行可以向下打印13行... 否则,您可以添加:
....
if com in line:
try:
print lines[index+13]
except IndexError:
pass # or whatever you want to do.