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

Susan Sarandon
Libérer: 2024-10-30 17:47:31
original
450 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!