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

在python中匹配文本后打印第n行,python,Python,在每次搜索匹配后,我试图打印文本文件中的第13行。意味着每次在文本文件中找到搜索模式时,它都应该打印找到的搜索文本的下一个第13行 我现在使用的代码只打印搜索匹配的当前行。有人能帮我在每场比赛后打印第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

在每次搜索匹配后,我试图打印文本文件中的第13行。意味着每次在文本文件中找到搜索模式时,它都应该打印找到的搜索文本的下一个第13行

我现在使用的代码只打印搜索匹配的当前行。有人能帮我在每场比赛后打印第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)

最简单的方法是一次读取所有行,然后搜索并打印:

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.

最简单的方法是一次读取所有行,然后搜索并打印:

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.