Maison >développement back-end >Tutoriel Python >Comment puis-je rediriger la sortie du sous-processus vers un fichier en Python ?

Comment puis-je rediriger la sortie du sous-processus vers un fichier en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-13 15:16:02756parcourir

How can I redirect subprocess output to a file in Python?

Redirection de la sortie en Python avec sous-processus

En Python, la redirection de la sortie vers un fichier à l'aide d'un sous-processus peut être effectuée via l'argument stdout lors de l'appel du sous-processus .run().

Considérez la commande de ligne de commande suivante :

cat file1 fichier2 fichier3 > monfichier

Cette commande concatène le contenu des fichiers "fichier1", "fichier2" et "fichier3" et dirige la sortie vers le fichier "monfichier".

Pour effectuer une opération analogue en Python à l'aide du sous-processus, suivez ces étapes :

  1. Créez une liste d'arguments pour l'appel du sous-processus, y compris la commande (par exemple, ['cat']) et les noms des fichiers d'entrée.
  2. Ouvrez le fichier vers lequel vous souhaitez rediriger la sortie (« monfichier » dans ce cas) en mode écriture.
  3. Invoquez le sous-processus. run() avec la liste des arguments, en spécifiant le descripteur de fichier ouvert comme paramètre stdout.

Exemple de code (Python 3.5 ):

import subprocess

# Create a list of input file names
input_files = ['file1', 'file2', 'file3']

# Create the command argument list
my_cmd = ['cat'] + input_files

# Open the output file in write mode
with open('myfile', "w") as outfile:
    # Run the subprocess and redirect its output to the file
    subprocess.run(my_cmd, stdout=outfile)

En suivant cette approche, vous pouvez rediriger efficacement la sortie d'un sous-processus vers un fichier spécifié.

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