Maison >développement back-end >Tutoriel Python >Comment pouvez-vous ouvrir plusieurs fichiers simultanément à l'aide de l'instruction \'with open\' de Python ?
L'instruction "with open" de Python est un moyen pratique d'ouvrir et de travailler avec des fichiers dans un gestionnaire de contexte . Cependant, par défaut, il ne permet d'ouvrir qu'un seul fichier à la fois. Mais que se passe-t-il si vous souhaitez modifier ou lire plusieurs fichiers simultanément ?
Réponse courte : Depuis Python 2.7 ou 3.1, vous pouvez simplement répertorier plusieurs instructions « with open » sans le mot-clé « and » :
with open('a', 'w') as a, open('b', 'w') as b: # Perform actions on file handles 'a' and 'b'
Dans les versions antérieures de Python, vous pouviez utiliser la méthode "contextlib.nested()" pour imbriquer les gestionnaires de contexte. Cependant, cette approche n'est pas recommandée pour ouvrir plusieurs fichiers.
Pour les situations où vous devez ouvrir un nombre variable de fichiers à la fois, Python 3.3 a introduit le "contextlib.ExitStack " gestionnaire de contexte. Cela vous permet d'ajouter plusieurs objets fichier à une pile et de quitter dans le bon ordre :
import contextlib with contextlib.ExitStack() as stack: files = [stack.enter_context(open(fname)) for fname in filenames] # Work with 'files' here
Gardez à l'esprit que, dans la plupart des cas, c'est plus efficace et idiomatique pour traiter les fichiers de manière séquentielle. Par exemple, vous pouvez utiliser une boucle pour ouvrir et travailler avec chaque fichier individuellement :
for fname in filenames: with open(fname) as f: # Process file 'f' here
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!