Używanie Pythona do zapisywania konkretnych linii z jednego pliku do innego pliku

Mam ~ 200 krótkich plików tekstowych (50kb), które mają podobny format. Chcę znaleźć wiersz w każdym z tych plików, który zawiera pewien ciąg, a następnie zapisać tę linię plus kolejne trzy linie (ale nie pozostałe linie w pliku) do innego pliku tekstowego. Próbuję nauczyć się Pythona, aby to zrobić i napisałem bardzo prosty i prymitywny mały skrypt, aby to wypróbować. Używam wersji 2.6.5 i uruchamiam skrypt z terminalu Mac:

#!/usr/bin/env python

f = open('Test.txt')

Lines=f.readlines()
searchquery = 'am\n'
i=0

while i < 500:
    if Lines[i] == searchquery:
        print Lines[i:i+3]
        i = i+1
    else:
        i = i+1
f.close()

To mniej więcej działa i drukuje dane wyjściowe na ekranie. Ale zamiast tego chciałbym wydrukować linie do nowego pliku, więc spróbowałem czegoś takiego:

f1 = open('Test.txt')
f2 = open('Output.txt', 'a')

Lines=f1.readlines()
searchquery = 'am\n'
i=0

while i < 500:
if Lines[i] == searchquery:
    f2.write(Lines[i])
    f2.write(Lines[i+1])
    f2.write(Lines[i+2])
    i = i+1
else:
    i = i+1
f1.close()
f2.close()

Jednak nic nie jest zapisywane w pliku. Próbowałem też

from __future__ import print_function
print(Lines[i], file='Output.txt')

i nie mogę tego zrobić. Gdyby ktoś mógł wyjaśnić, co robię źle, lub zaoferować pewne sugestie dotyczące tego, co powinienem zamiast tego wypróbować, byłbym naprawdę wdzięczny. Ponadto, jeśli masz jakieś sugestie dotyczące lepszego wyszukiwania, doceniłbym je również. Używam pliku testowego, w którym ciąg, który chcę znaleźć, jest jedynym tekstem w wierszu, ale w moich prawdziwych plikach ciąg, którego potrzebuję, wciąż znajduje się na początku wiersza, ale po nim następuje kilka innych tekstów, więc Myślę, że sposób, w jaki ustawiłem rzeczy teraz, tak naprawdę nie zadziała.

Dziękuję i przepraszam, jeśli to super podstawowe pytanie!

questionAnswers(5)

yourAnswerToTheQuestion