Usuń linie zawierające określony ciąg

Próbuję odczytać tekst z pliku tekstowego, czytać wiersze, usuwać wiersze zawierające określony ciąg (w tym przypadku „zły” i „niegrzeczny”). Kod, który napisałem, wygląda tak:

infile = file('./oldfile.txt')

newopen = open('./newfile.txt', 'w')
for line in infile :

    if 'bad' in line:
        line = line.replace('.' , '')
    if 'naughty' in line:
        line = line.replace('.', '')
    else:
        newopen.write(line)

newopen.close()

Pisałem tak, ale to nie działa.

Ważne jest, jeśli treść tekstu była taka:

good baby
bad boy
good boy
normal boy

Nie chcę, aby dane wyjściowe zawierały puste linie. więc nie lubię:

good baby

good boy
normal boy

ale tak:

good baby
good boy
normal boy

Co powinienem edytować z mojego kodu na powyższym?

questionAnswers(7)

yourAnswerToTheQuestion