使用python,搜索文本并在python中打印下几行

时间:2015-11-28 13:59:19

标签: python-3.x

目前我是Python 3.x编码的新手,并在文本搜索中寻找帮助。

我有超过8000行的大文件,需要在此文件中找到文本。找到文本后,需要后续的3行和(文本)行重定向到新文件。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

找到一个打开输出文件以便每次匹配时附加的方法:

search_string = 'search'
with open('infile.txt', mode='r') as infile:
    for line in infile:
        if search_string in line:
            with open('outfile.txt', mode='a') as outfile:
                outfile.writelines([line, next(infile), next(infile)])

在打开输入文件的同时打开输出文件进行写入的方法,在输入文件关闭的同时关闭文件。

search_string = 'search'
with open('infile.txt', 'r') as infile, open('outfile.txt', 'w') as outfile:
    for line in infile:
        if search_string in line:
            outfile.writelines([line, next(infile), next(infile)])

next(infile)位迭代文件中的下一行。这也适用于其他迭代器。

答案 1 :(得分:0)

当你在文件中找到该行时,你应该能够只使用file.readline()来获取下一行。 (您应该使用.find()进行字符串搜索,这只是一个简单的示例)。

with open('test.txt', 'r') as infile:
for line in infile:
    if 'myString' in line:
        line2 = infile.readline()
        line3 = infile.readline()
        print(line, end="")
        print(line2, end="")
        print(line3, end="")