Maison développement back-end Tutoriel Python Comment sous-traiter simultanément la sortie vers les fichiers et le terminal en Python ?

Comment sous-traiter simultanément la sortie vers les fichiers et le terminal en Python ?

Nov 03, 2024 pm 09:46 PM

How to Tee Subprocess Output to Files and Terminal Simultaneously in Python?

Transmission simultanée de la sortie du sous-processus vers les fichiers et le terminal

La méthode subprocess.call() de Python vous permet d'exécuter des commandes externes. Cependant, par défaut, la sortie est dirigée vers le terminal. Cet article aborde la question de savoir comment écrire simultanément la sortie dans les fichiers et dans le terminal.

La réponse réside dans l'utilisation directe de la fonction Popen(), qui offre un meilleur contrôle sur le processus d'exécution. En spécifiant stdout=PIPE, vous pouvez lire le flux stdout du processus. Pour obtenir le comportement souhaité, suivez ces étapes :

  1. Créer une fonction Tee : Définissez une fonction qui lit à partir d'un fichier d'entrée et l'écrit dans plusieurs fichiers de sortie. Cette fonction s'exécute dans un thread séparé, garantissant que le processus principal n'est pas bloqué.
  2. Utilisez la fonction Tee dans la fonction Teed_Call : Créez une fonction wrapper nommée teed_call() qui appelle Popen() avec stdout=PIPE et stderr=PIPE. Il utilise la fonction tee() pour écrire les flux stdout et stderr dans les fichiers et le terminal.
  3. Exécuter les commandes avec Teeing : Appelez teed_call() avec les arguments de commande souhaités et spécifiez le fichiers de sortie à l'aide des paramètres stdout et stderr.
  4. Attendez la fin de la sortie : Après avoir exécuté la commande, rejoignez le thread créé par la fonction tee() pour vous assurer que toutes les sorties sont écrites avant de continuer .

L'exemple de code fourni dans la réponse montre comment utiliser la fonction teed_call() pour diffuser les flux stdout et stderr de diverses commandes, notamment cat, echo et gcc.

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

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser la belle soupe pour analyser HTML? Comment utiliser la belle soupe pour analyser HTML? Mar 10, 2025 pm 06:54 PM

Comment utiliser la belle soupe pour analyser HTML?

Filtrage d'image en python Filtrage d'image en python Mar 03, 2025 am 09:44 AM

Filtrage d'image en python

Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte Mar 05, 2025 am 09:58 AM

Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte

Comment travailler avec des documents PDF à l'aide de Python Comment travailler avec des documents PDF à l'aide de Python Mar 02, 2025 am 09:54 AM

Comment travailler avec des documents PDF à l'aide de Python

Comment se cacher en utilisant Redis dans les applications Django Comment se cacher en utilisant Redis dans les applications Django Mar 02, 2025 am 10:10 AM

Comment se cacher en utilisant Redis dans les applications Django

Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch? Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch? Mar 10, 2025 pm 06:52 PM

Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch?

Sérialisation et désérialisation des objets Python: partie 1 Sérialisation et désérialisation des objets Python: partie 1 Mar 08, 2025 am 09:39 AM

Sérialisation et désérialisation des objets Python: partie 1

Comment implémenter votre propre structure de données dans Python Comment implémenter votre propre structure de données dans Python Mar 03, 2025 am 09:28 AM

Comment implémenter votre propre structure de données dans Python

See all articles