Redirection de la sortie de la console vers un fichier
En Python, la redirection du flux stdout vers un fichier permet aux développeurs de capturer et d'enregistrer la sortie imprimée. Pour y parvenir, l'attribut sys.stdout peut être manipulé. Cependant, un problème récent a été signalé où l'approche décrite dans la question d'origine ne génère pas le résultat souhaité.
Résolution du problème
Le problème réside dans le mauvais utilisation du paramètre file= lors de l'impression. Dans les versions 3.x et supérieures de Python, la syntaxe correcte est print('Filename:', filename, file=f). Pour Python 2.x, utilisez print >> f, 'Filename:', filename.
Alternativement, l'instruction with peut être utilisée pour rediriger la sortie standard de manière plus concise :
with open('output.txt', 'w') as f: with redirect_stdout(f): print('Filename:', filename)
Méthodes supplémentaires
En plus d'utiliser sys.stdout, il existe d'autres méthodes pour rediriger sortie :
Utilisation d'un objet fichier : Écrivez directement dans un objet fichier, comme indiqué ci-dessous :
with open('out.txt', 'w') as f: print('Filename:', filename, file=f)
Redirection du shell externe : Utilisez le > opérateur dans le shell pour rediriger la sortie :
./script.py > out.txt
Dépannage
Dans le script fourni, assurez-vous :
Résultat amélioré
En utilisant la syntaxe corrigée et un objet fichier, le Le résultat attendu serait :
Filename: ERR001268.bam Readlines finished! Mean: 233 SD: 10 Interval is: (213, 252)
Cette version mise à jour du script capture la sortie et la redirige vers le fichier output.txt.
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!