Maison >développement back-end >Tutoriel Python >À quoi sert l'instruction WITH en Python ?
Dans cet article, nous découvrirons l'instruction « with » en Python et son utilisation.
En Python, l'instruction with remplace le bloc try-catch de manière concise.
Plus important encore, cela garantit que la ressource est fermée immédiatement après le traitement.
L'utilisation de l'instruction with pour lire ou écrire des fichiers est une utilisation courante.
Un gestionnaire de contexte est une fonction ou une classe qui prend en charge l'instruction with. Les gestionnaires de contexte vous permettent d'ouvrir et de fermer des ressources quand vous le souhaitez.
Par exemple, la fonction open() est un gestionnaire de contexte. Lorsque vous appelez la fonction open() à l'aide de l'instruction with, le fichier est automatiquement fermé après son traitement.
Voici les algorithmes/étapes pour effectuer la tâche requise :
Utilisez la fonction open() (qui ouvre un fichier et renvoie ainsi un objet fichier) pour ouvrir un fichier texte en mode lecture seule en lui passant le nom et le mode du fichier en paramètres ("r " signifie ici mode lecture seule).
with open(inputFile, 'r') as fileData:
Utilisez la fonction readlines() pour obtenir la liste des lignes d'un fichier texte donné.
file.readlines(hint)
Utilisez une boucle for pour parcourir chaque ligne d'un fichier texte donné.
Imprimez les lignes correspondantes du fichier texte.
# input file path inputFile = "ExampleTextFile.txt" print("The lines of a given Text File are:") # Opening the given file in read-only mode. with open(inputFile, 'r') as fileData: # Read the above file lines using readlines() fileLines = fileData.readlines() # Traverse in the each line of the text file for textLine in fileLines: # printing each line print(textLine)
The lines of a given Text File are: Good Morning this is Tutorials Point sample File Consisting of Specific Good source codes in Python,Seaborn,Scala Summary and Explanation
Utilisez le mot-clé « with » non seulement pour ouvrir un fichier en mode lecture, mais également pour attribuer un alias au fichier ouvert.
En Python, vous pouvez utiliser la gestion des erreurs try-catch pour ouvrir et écrire des fichiers.
Sous le capot, l'instruction with remplace le bloc try-catch suivant
La traduction chinoise de# opening the file in write mode using the open() function inputFile = open("tutorialsFile.txt", "w") # handling the exceptions using try-catch blocks try: # writing text into the file inputFile.write("Hello tutorialsPoint python") finally: # closing the file inputFile.close()
Hello tutorialsPoint python
Cette application ouvre le fichier tutorialsFile.txt. Si aucun fichier de ce type n'existe, le programme le crée. Le code écrit ensuite "Bonjour tutorielsPoint python" dans le fichier puis ferme le fichier.
Il n'y a aucun problème avec cette méthode. Cependant, cette tâche peut être accomplie de manière plus élégante en utilisant l'instruction with.
Recréons maintenant l'exemple précédent en utilisant l'instruction with −
# opening a file in write mode with an alias name using with statement with open("tutorialsFile.txt", "w") as file: # writing text into the file file.write("Hello tutorialsPoint python")
Cela simplifie le code car l'instruction with peut gérer la fermeture du fichier après son utilisation. C'est pourquoi l'utilisation de l'instruction with est généralement la technique préférée pour ouvrir des fichiers en Python.
Lors du traitement de fichiers, vous pensez peut-être que l'instruction with s'applique uniquement à la fonction open(). Cependant, ce n’est pas le cas. Des classes et des objets prenant en charge l'instruction with peuvent également être créés.
Un gestionnaire de contexte est une classe ou une fonction qui prend en charge l'instruction with
Si vous souhaitez ajouter la gestion des ressources à votre projet, vous pouvez utiliser des gestionnaires de contexte. Pour être considérée comme un gestionnaire de contexte, une classe doit implémenter les deux méthodes suivantes −
Après avoir implémenté ces méthodes, vous pouvez utiliser l'instruction with sur les objets de la classe.
Lorsque l'instruction with est appelée, la méthode __enter__() sera appelée.
Lorsque vous quittez la portée du bloc with, la méthode __exit__() sera appelée.
Créer un gestionnaire de contexte pour l'écriture de fichiers
La fonction de cette classe est la même que la méthode open()
class FileWriter(object): def __init__(self, fileName): self.fileName = fileName def __enter__(self): self.file = open(self.fileName, "w") return self.file def __exit__(self, exception_type, exception_value, traceback): self.file.close()
À l'aide de FileWriter(filename), un nouvel objet FileWriter est créé et __enter__() est appelé.
__enter__() est utilisée pour initialiser les ressources requises. Dans ce cas, il ouvre un fichier texte. Il doit également renvoyer le descripteur de la ressource et donc le fichier ouvert.
as file attribue le fichier à une variable nommée file.
Enfin, dans le bloc with après les deux-points, placez le code qui sera exécuté avec la ressource récupérée.
Une fois cette exécution de code terminée, la méthode __exit__() sera appelée automatiquement. Dans ce cas, il ferme le fichier.
Le gestionnaire de contexte écrit précédemment est une classe, mais que se passe-t-il si vous souhaitez créer une méthode de gestion de contexte similaire à la fonction open() ? Python vous permet également d'écrire des méthodes de gestion de contexte.
Convertissez une méthode en gestionnaire de contexte à l'aide du module contextlib.
La traduction chinoise de# importig the contextmanager from contextlib module from contextlib import contextmanager # Marking the file_open() function as a context manager # using contextmanager decorator @contextmanager def file_open(name): try: file = open(name, "w") yield file finally: file.close() with file_open("exampleFile.txt") as file: file.write("Hello tutorialsPoint python")La traduction de
Hello tutorialsPoint python
Ici, nous avons créé une nouvelle fonction en utilisant le mot-clé with et l'avons nommée. Lorsque nous appelons cette fonction, elle essaie d'ouvrir le fichier spécifié en mode écriture et renvoie le résultat. Si une erreur se produit, le fichier sera fermé.
Nous avons appris à utiliser l'instruction with avec des exemples dans cet article.
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!