Maison > développement back-end > Tutoriel Python > Comment puis-je rediriger la sortie « print » de Python vers un fichier ?

Comment puis-je rediriger la sortie « print » de Python vers un fichier ?

Susan Sarandon
Libérer: 2024-12-01 07:39:11
original
165 Les gens l'ont consulté

How Can I Redirect Python's `print` Output to a File?

Redirection de la sortie « impression » vers un fichier

Lorsque vous tentez de rediriger la sortie « impression » vers un fichier texte en Python, les utilisateurs peuvent rencontrer des défis si leur code ne se comporte pas comme prévu. Dans de tels cas, utiliser sys.stdout pour rediriger la sortie peut conduire à des résultats inattendus.

Une approche simple et recommandée consiste à imprimer directement sur un objet fichier :

with open('out.txt', 'w') as f:
    print('Filename:', filename, file=f)  # Python 3.x
    # print >> f, 'Filename:', filename   # Python 2.x
Copier après la connexion

Alternativement, pour un script ponctuel, la redirection 'sys.stdout' peut convenir :

import sys

orig_stdout = sys.stdout
f = open('out.txt', 'w')
sys.stdout = f

for i in range(2):
    print('i = ', i)

sys.stdout = orig_stdout
f.close()
Copier après la connexion

Depuis Python 3.4, la bibliothèque standard fournit un gestionnaire de contexte qui simplifie cette tâche :

from contextlib import redirect_stdout

with open('out.txt', 'w') as f:
    with redirect_stdout(f):
        print('data')
Copier après la connexion

La redirection externe depuis le shell peut également être une option efficace :

./script.py > out.txt
Copier après la connexion

Pour résoudre des problèmes potentiels, pensez à vérifier le premier nom de fichier dans le script, qui ne peut pas être initialisé. De plus, vérifier que le dossier existe et imprimer les « bamfiles » peut aider à identifier tout problème de découverte de fichiers. L'utilisation de 'os.path.join' et 'os.path.basename' pour la manipulation du chemin et du nom de fichier est recommandée pour une clarté de code optimale.

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