Comment utiliser le sous-processus Python avec des tuyaux?

Comment utiliser le sous-processus Python avec des tuyaux?
Python est la langue de haut niveau la plus courante parfaite pour les débutants. Il est utile pour l'apprentissage automatique, le développement Web et d'autres fonctionnalités. C'est l'un des langages de programmation les plus simples et accessibles pour aider les programmeurs à écrire un code clair, précis et simple. Il fournit de nombreuses fonctions intégrées, des méthodes faciles à comprendre et plusieurs sous-processus qui permettent à l'utilisateur d'exécuter des commandes Linux, C, C ++ ou Java directement à partir de Python. Cet article discutera de l'utilisation des sous-processus dans Python et expliquera comment ces sous-processus peuvent être combinés avec des tuyaux. Alors commençons.

La documentation officielle Python fournit une explication détaillée du sous-processus en Python et comment utiliser le sous-processus Python avec des tuyaux, et il est bénéfique à des fins de compréhension et de développement. Cependant, la documentation complète peut être un peu écrasante pour les débutants. De plus, la syntaxe peut varier d'une version à une autre version de Python, qui peut confondre les débutants.

Par conséquent, nous avons une solution pour vous, et nous expliquons ici le processus étape par étape de l'utilisation du sous-processus Python avec des tuyaux. Nous expliquerons le processus à l'aide d'exemples, alors allons plus loin pour voir les exemples mais, première, voyons ce qu'est un tuyau à un sous-processus à Python. Le tuyau de Python est utilisé pour envoyer ou recevoir des données d'un programme qui s'exécute en tant que sous-processus à Python. Pour ce faire, nous pouvons utiliser une combinaison de tuyau qui crée essentiellement le tuyau, un fourchette est utilisé pour créer le sous-processus dans le programme, dup2 est utilisé pour forcer le sous-processus à utiliser le tuyau comme canal d'entrée et de sortie standard, et enfin, exécutif est utilisé pour exécuter ou exécuter le nouveau programme. De plus, Popen et Pclose sont utilisés pour ouvrir ou fermer le programme, respectivement.

L'avantage de l'utilisation de POPEN et du pclose est qu'il suggère une interface simple et facile à utiliser. Cependant, il ne offre pas beaucoup de flexibilité car il utilise directement des fonctions de bas niveau. Voyons les exemples ci-dessous.

Exemple 1:

Le premier exemple expliquera comment coder la commande qui contient un tuyau et une redirection. Voyons l'exemple:

ZCAT F1.dat.GZ F2.dat.gz | Pigz> Out.gz

Voici le code Python qui explique comment implémenter la commande UNIX avec un sous-processus dans Python.

P1 = sous-processus.POPEN (["ZCAT", "F1.dat.GZ "," F2.dat.gz "],
stdout = sous-processus.TUYAU)
fout = ouvert ('out.gz ',' wb ')
p2 = sous-processus.Run (['Pigz'], stdin = p1.stdout, stdout = fout) a

Notez que la méthode POPEN () est utilisée avec le premier sous-processus, tandis que la méthode Run () est utilisée avec le deuxième appel qui code les redirections. L'erreur suivante sera causée si la méthode run () est utilisée avec le tuyau lui-même.

Exemple 2:

Cet exemple expliquera comment un programme Python demande le nom d'un utilisateur. Ensuite, Echo est-il avec un message de salutation et demande à plusieurs reprises les noms jusqu'à ce que l'utilisateur entre dans la sortie.«Lorsque l'utilisateur entre la« sortie »dans la réponse de la demande du nom, la condition IF a répondu aux critères donnés et à l'exécution du programme s'arrête. Voir le code ci-dessous.

importer sys
Imprimer ("quel est votre nom?")
pour nom dans iter (sys.stdin.Readline, "):
name = name [: - 1]
Si name == "sort":
casser
print ("Eh bien, comment allez-vous 0?".format (nom))
imprimer ("\ n quel est votre nom?")

Voici la sortie répétée du code ci-dessus qui ne s'arrête que lorsque l'utilisateur entre le mot «.'

Exemple 3:

Cet exemple est un peu compliqué mais facile à comprendre et à utiliser. Il expliquera comment contrôler l'entrée et la sortie d'un programme à l'aide de tuyaux et de sous-processus en Python. Voyons d'abord le code.

sous-processus d'importation
importer sys
proc = sous-processus.POPEN (["Python", "Callmyname.py "])
Pendant que proc.Le code de retour est nul:
procure.sondage()
proc = sous-processus.POPEN (["Python", "Callmyname.py "],
stdin = sous-processus.Tuyau, stdout = sous-processus.TUYAU)
procure.stdin.écrire ("Alex \ n")
procure.stdin.écrire ("jhon \ n")
procure.stdin.fermer()
Pendant que proc.Le code de retour est nul:
procure.sondage()
print ("Je suis de retour du programme de l'enfant ceci: \ n 0".format (proc.stdout.lire()))

Le sous-processus.POPEN () prend deux arguments nommés, l'un est stdin et le second est stdout. Ces deux arguments sont facultatifs. Ces arguments sont utilisés pour définir le tuyau, que le processus de l'enfant utilise comme stdin et stdout. Le sous-processus.Le tuyau est passé comme une constante afin que l'un ou l'autre des sous-processus.POPEN () ou sous-processus.Tuyau que l'utilisateur spécifie qu'il veut le résultat. Un processus d'enfant nommé Callmyname.PY est créé dans le programme. Deux noms sont transmis au calmyname.py avant d'envoyer le signal EOF à l'entrée de l'enfant. Le processus mère attend que le processus de l'enfant se termine avant de lire la sortie produite par le processus de l'enfant. Ce qui suit est la sortie du code donné ci-dessus.

Comme vous pouvez le voir, il est simple d'utiliser un tuyau avec le sous-processus en Python. Si vous suivez les exemples donnés ci-dessus, vous pouvez facilement apprendre l'utilisation du tuyau avec des sous-processus en python.

Conclusion:

Cet article explique comment utiliser le sous-processus Python avec tuyau. Tout d'abord, nous avons brièvement introduit ce qu'un tuyau est à un sous-processus à Python, puis nous avons fourni quelques exemples pour expliquer comment utiliser le tuyau avec un sous-processus à Python.