Maison > développement back-end > Tutoriel Python > Comment rediriger correctement la sortie d'impression Python vers un fichier texte ?

Comment rediriger correctement la sortie d'impression Python vers un fichier texte ?

Susan Sarandon
Libérer: 2024-11-27 19:43:14
original
348 Les gens l'ont consulté

How to Properly Redirect Python Print Output to a Text File?

Rediriger la sortie Python vers un fichier texte

Lorsque vous essayez de rediriger la sortie d'impression vers un fichier texte à l'aide de Python, vous pouvez rencontrer des difficultés si votre choix La méthode ne produit pas les résultats souhaités.

Description du problème

Ce qui suit le code ne parvient pas à rediriger la sortie vers un fichier à l'aide de sys.stdout :

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

path= '/home/xxx/nearline/bamfiles'
bamfiles = glob.glob(path + '/*.bam')

for bamfile in bamfiles:
    filename = bamfile.split('/')[-1]
    print 'Filename:', filename
Copier après la connexion

Solution

Au lieu de sys.stdout, envisagez d'utiliser un objet fichier pour l'impression :

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

Alternative Solutions

  • Utiliser un gestionnaire de contexte pour rediriger la sortie :
from contextlib import redirect_stdout

with open('out.txt', 'w') as f:
    with redirect_stdout(f):
        print('data')
Copier après la connexion
  • Rediriger la sortie en externe depuis le shell :
./script.py > out.txt
Copier après la connexion

Supplémentaire Considérations

  • Assurez-vous que la fonction glob localise les fichiers prévus.
  • Manipulez correctement les chemins de fichiers à l'aide de os.path.join et os.path.basename.

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