Que Python est bien pensé :)
On peut enchaîner les appels à open() avec le context manager with. Admettons que nous voulions simuler la commande système suivante :

cut -d' ' -f1 fichier1.txt > fichier2.txt

Cette commande récupère chaque ligne de fichier1.txt, la segmente en utilisant l'espace comme délimiteur et enregistre le premier segment dans fichier2.txt.

En Python, on chaîne les appels :

with open("fichier1.txt") as src, open("fichier2.txt", "w") as dst:
    for line in src.readlines():
        dst.write(line.split(" ")[0]))

Bon, c'est trivial comme exemple, mais on peut enchaîner autant d'appels que l'on veut. Bon à savoir.