Maison > Article > développement back-end > Comment puis-je ouvrir plusieurs fichiers dans une seule instruction « with » en 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!