Maison  >  Article  >  développement back-end  >  À quoi sert l’instruction WITH en Python ?

À quoi sert l’instruction WITH en Python ?

王林
王林avant
2023-08-18 22:53:141810parcourir

À 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.

Utilisez l'instruction « with » pour ouvrir et lire des fichiers

Algorithme (étapes)

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.

La traduction chinoise de

Exemple

est :

Exemple

# 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)

Sortie

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.

Utilisez l'instruction "with" au lieu du bloc try-catch

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

Exemple

est :

Exemple

# 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()

Sortie

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.

Instruction Python "with" et gestionnaire de contexte

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 −

  • __entrez__()
  • __sortie__()

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()

Comment utiliser les programmes ci-dessus

  • À l'aide de FileWriter(filename), un nouvel objet FileWriter est créé et __enter__() est appelé.

  • La méthode
  • __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.

Comment rédiger vos méthodes de gestionnaire de contexte ?

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

Exemple

est :

Exemple

# 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

exampleFile.txt

est :

exampleFile.txt

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é.

Conclusion

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer