Maison > développement back-end > Tutoriel Python > Comment rediriger la sortie avec un sous-processus en Python ?

Comment rediriger la sortie avec un sous-processus en Python ?

Patricia Arquette
Libérer: 2024-11-17 18:20:02
original
250 Les gens l'ont consulté

How to Redirect Output with Subprocess in Python?

Redirection de la sortie avec un sous-processus en Python

Lors de l'exécution de commandes shell en Python à l'aide du module de sous-processus, il est essentiel de savoir comment rediriger la sortie. Un scénario courant consiste à rediriger la sortie standard d’une commande vers un fichier. Cet article répond à ce besoin en explorant l'approche de Python pour réaliser la redirection de sortie.

Dans l'extrait de code Python fourni, l'utilisateur tente d'utiliser subprocess.call pour rediriger la sortie de la commande cat vers un fichier en divisant la commande. en arguments en utilisant shlex. Cependant, la sortie est toujours affichée dans la console.

Pour rediriger correctement la sortie dans Python 3.5 et versions ultérieures, l'argument stdout de subprocess.run peut être utilisé. Cet argument accepte un descripteur de fichier ouvert comme valeur, vers lequel la sortie sera dirigée. Voici un exemple :

# Use a list of args instead of a string
input_files = ['file1', 'file2', 'file3']
my_cmd = ['cat'] + input_files
with open('myfile', "w") as outfile:
    subprocess.run(my_cmd, stdout=outfile)
Copier après la connexion

Dans ce code, la commande à exécuter est divisée en une liste d'arguments et la sortie est redirigée vers un fichier nommé « monfichier ». L'instruction with garantit que le fichier est correctement ouvert, écrit et fermé.

Il convient de noter que l'utilisation d'une commande externe comme cat à cette fin n'est pas nécessaire. Python possède des fonctions intégrées pour lire et écrire des fichiers, qui peuvent être utilisées directement :

with open('myfile', "w") as outfile:
    outfile.write(open('file1').read())
    outfile.write(open('file2').read())
    outfile.write(open('file3').read())
Copier après la connexion

En comprenant comment rediriger correctement la sortie avec un sous-processus ou en utilisant les capacités de gestion de fichiers de Python, vous pouvez gérer efficacement le flux de informations dans vos scripts Python.

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