Rediriger la sortie d'impression vers un fichier en Python
-
Utilisez la fonction
write()
pour imprimer la sortie dans un fichier en Python -
Utilisez la fonction
print()
pour imprimer la sortie dans un fichier en Python -
Utilisez
sys.stdout
pour imprimer la sortie dans un fichier en Python -
Utilisez la fonction
contextlib.redirect_stdout()
pour imprimer la sortie dans un fichier en Python
Il existe un autre type de tâche dans la gestion des fichiers qui peut être effectuée à l’aide de python, c’est-à-dire rediriger la sortie vers un fichier externe. Fondamentalement, une sortie standard peut être imprimée dans un fichier choisi par l’utilisateur lui-même. Il existe de nombreuses façons de procéder.
Dans ce tutoriel, nous verrons quelques méthodes pour rediriger la sortie vers un fichier en Python.
Utilisez la fonction write()
pour imprimer la sortie dans un fichier en Python
Il s’agit d’une fonction Python intégrée qui aide à écrire ou à ajouter un texte spécifié dans un fichier. w
et a
sont les 2 opérations de cette fonction qui écriront ou ajouteront du texte dans un fichier. w
est utilisé lorsque l’utilisateur veut vider le fichier avant d’y écrire quoi que ce soit. Alors que a
est utilisé lorsque l’utilisateur souhaite simplement ajouter du texte au texte existant dans le fichier.
Exemple:
with open("randomfile.txt", "a") as o:
o.write("Hello")
o.write("This text will be added to the file")
Notez que la fonction open()
est utilisée ici pour ouvrir le fichier. a
dans le code indique que du texte a été ajouté au fichier.
Utilisez la fonction print()
pour imprimer la sortie dans un fichier en Python
Dans cette méthode, nous appelons d’abord la fonction open()
pour ouvrir le fichier souhaité. Après cette fonction print()
est utilisée pour imprimer le texte dans le fichier. L’utilisateur a toujours le choix d’utiliser l’opérateur w
ou l’opérateur a
.
Exemple:
with open("randomfile.txt", "w") as external_file:
add_text = "This text will be added to the file"
print(add_text, file=external_file)
external_file.close()
Notez que la fonction close()
est également utilisée pour fermer le fichier dans le code ci-dessus après l’avoir ouvert avec le open()
. Après avoir appelé la fonction close()
, le fichier ne peut pas être lu et rien d’autre ne peut être écrit. Si l’utilisateur essaie d’apporter des modifications au fichier après avoir appelé la fonction close()
, une erreur sera générée.
Utilisez sys.stdout
pour imprimer la sortie dans un fichier en Python
Le module sys
est un module Python intégré qui est utilisé par l’utilisateur pour gérer diverses parties de l’environnement d’exécution en Python. Pour utiliser le sys.stdout
, le module sys
doit d’abord être importé.
sys.stdout
est utilisé lorsque l’utilisateur souhaite afficher la sortie directement sur la console principale de l’écran. La forme de la sortie peut être modifiée, par exemple, il peut s’agir d’une invite de saisie, d’une instruction d’impression ou simplement d’une expression. Dans cette méthode, nous imprimerons une déclaration dans un fichier texte.
Exemple:
import sys
file_path = "randomfile.txt"
sys.stdout = open(file_path, "w")
print("This text will be added to the file")
A noter qu’avant d’utiliser le sys.stdout
comme objet pour ouvrir et imprimer l’instruction dans le fichier texte, un chemin défini du fichier doit être défini par l’utilisateur sinon, aucune des opérations ne pourra être effectuée sur le fichier.
Utilisez la fonction contextlib.redirect_stdout()
pour imprimer la sortie dans un fichier en Python
Le module contextlib
est généralement utilisé avec l’instruction with
.
La fonction contextlib.redirect_stdout()
permet de rediriger temporairement sys.stdout
vers un fichier en configurant un gestionnaire de contexte.
Exemple:
import contextlib
file_path = "randomfile.txt"
with open(file_path, "w") as o:
with contextlib.redirect_stdout(o):
print("This text will be added to the file")
Comme vous pouvez le voir, l’instruction with
est utilisée avec les opérations du module contextlib
.
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn