Supprimer les lignes qui contiennent certaines chaînes

Je suis en train de lire un texte à partir d'un fichier texte, de lire des lignes, supprimer les lignes qui contiennent la chaîne de caractères spécifique (dans ce cas, 'mauvais' et 'méchant').
Le code que j'ai écrit va comme ceci:

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()

Je l'ai écrit comme ça, mais ça ne marche pas.

Une chose importante, c'est, si le contenu du texte comme ceci:

good baby
bad boy
good boy
normal boy

Je ne veux pas la sortie des lignes vides.
alors aime pas: les

good baby

good boy
normal boy

mais comme cela:

good baby

good boy
normal boy

Que dois-je modifier dans mon code ci-dessus?

source d'informationauteur H.Choi