Maison  >  Article  >  développement back-end  >  Comment puis-je ouvrir plusieurs fichiers dans une seule instruction « with » en Python ?

Comment puis-je ouvrir plusieurs fichiers dans une seule instruction « with » en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-30 17:47:31434parcourir

How can I open multiple files within a single `with` statement in Python?

Ouverture de plusieurs fichiers dans une seule instruction with

Lorsque vous effectuez une entrée et une sortie de fichier en Python à l'aide de l'instruction with, vous pouvez utiliser certaines techniques pouvez utiliser pour optimiser votre code. Une de ces techniques consiste à ouvrir plusieurs fichiers dans le même bloc with. Cela s'avère particulièrement utile lorsque vous travaillez simultanément avec des fichiers d'entrée et de sortie.

Imbriqué avec des blocs

Dans les versions antérieures de Python, telles que 2.5 et 2.6, il était nécessaire de imbriquer avec des blocs pour plusieurs opérations sur les fichiers. Par exemple, considérons l'exemple suivant :

<code class="python">def filter(txt, oldfile, newfile):
    with open(newfile, 'w') as outfile:
        with open(oldfile, 'r', encoding='utf-8') as infile:
            for line in infile:
                # ...</code>

Dans ce code, la fonction open est appelée deux fois, créant des objets fichier distincts pour l'entrée et la sortie.

Ouvert séparé par des virgules () Déclarations

Cependant, à partir de Python 2.7 et 3.1, vous pouvez simplifier ce processus en séparant par des virgules plusieurs instructions open() dans un seul bloc with :

<code class="python">def filter(txt, oldfile, newfile):
    with open(newfile, 'w'), open(oldfile, 'r', encoding='utf-8') as (outfile, infile):
        for line in infile:
            # ...</code>

Cette syntaxe concise vous permet de travailler avec plusieurs fichiers simultanément, améliorant considérablement la lisibilité du code et réduisant les niveaux d'indentation.

Considérations supplémentaires

N'oubliez pas que le retour explicite d'une fonction Python est inutile car la langue quitte automatiquement la fonction à la fin. De plus, si votre code doit prendre en charge les versions 2.5, 2.6 ou 3.0 de Python, envisagez l'imbrication avec des blocs au lieu d'utiliser l'approche séparée par des virgules pour garantir la compatibilité.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn