Comment rediriger la sortie exécutable vers les fichiers et le terminal ?

Patricia Arquette
Libérer: 2024-11-04 08:36:30
original
306 Les gens l'ont consulté

How to Redirect Executable Output to Both Files and the Terminal?

Exécution d'exécutables avec sortie vers les fichiers et le terminal

Lors de l'exécution de plusieurs exécutables à l'aide de subprocess.call(), vous souhaiterez peut-être diriger le sortie standard et sortie d'erreur vers les fichiers et le terminal. Cependant, l'utilisation de stdout=outf ou stderr=errf spécifie uniquement que la sortie doit être écrite dans un fichier et non affichée sur le terminal.

Pour obtenir le comportement souhaité, vous pouvez exploiter directement la classe Popen et utiliser l' stdout=PIPE argument pour capturer la sortie standard dans un tube au lieu d'un fichier. Voici comment procéder :

<code class="python">from subprocess import Popen, PIPE

with open("out.txt", "wb") as outf, open("err.txt", "wb") as errf:
    p = Popen(["cat", __file__], stdout=PIPE, stderr=errf)
    # Read the output from the pipe
    output = p.stdout.read()
    # Write the output to the terminal
    print(output)
    # Ensure the process completes and wait for the output to be fully written
    p.wait()</code>
Copier après la connexion

Dans cet exemple, nous capturons la sortie standard dans un tube et la lisons à l'aide de p.stdout.read(). Nous imprimons ensuite la sortie sur le terminal avant d'attendre la fin du processus et que la sortie soit entièrement écrite dans les fichiers. Cela garantit que la sortie est affichée sur le terminal ainsi qu'écrite dans les fichiers spécifiés.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!