Redirection de sortie pour le code Python
La requête est centrée sur la redirection des instructions d'impression vers un fichier texte désigné à l'aide de Python. Malgré l'utilisation de la technique sys.stdout, le fichier cible reste vide. Cet article vise à explorer le problème et à proposer des solutions alternatives.
Utilisation d'objets fichier pour la sortie
L'approche la plus simple consiste à écrire directement dans 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
Redirection de la sortie standard
Alternativement, la redirection de la sortie standard peut être obtenu avec le code suivant :
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()
Utilisation du gestionnaire de contexte de bibliothèque standard
Pour Python 3.4 et supérieur, un gestionnaire de contexte dédié peut simplifier ce processus :
from contextlib import redirect_stdout with open('out.txt', 'w') as f: with redirect_stdout(f): print('data')
Redirection de sortie externe
Redirection de sortie en externe via le shell est une autre option viable :
./script.py > out.txt
Considérations supplémentaires
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!