


Comment sous-traiter simultanément la sortie vers les fichiers et le terminal en Python ?
Nov 03, 2024 pm 09:46 PMTransmission 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 :
- 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é.
- 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.
- 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.
- 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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

Comment utiliser la belle soupe pour analyser HTML?

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

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

Comment se cacher en utilisant Redis dans les applications Django

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

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

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