在python中匹配文本后打印第N行

时间:2018-09-15 10:01:10

标签: python

我试图在每次搜索匹配后在文本文件中打印第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)

1 个答案:

答案 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.