Maison > développement back-end > Tutoriel Python > Voici quelques titres d'articles basés sur des questions qui correspondent au contenu : * Comment exécuter des scripts Python avec la saisie de l'utilisateur à l'aide d'un sous-processus ? * Capturer la sortie des scripts Python : un guide sur la technologie des sous-processus

Voici quelques titres d'articles basés sur des questions qui correspondent au contenu : * Comment exécuter des scripts Python avec la saisie de l'utilisateur à l'aide d'un sous-processus ? * Capturer la sortie des scripts Python : un guide sur la technologie des sous-processus

Linda Hamilton
Libérer: 2024-10-26 07:10:30
original
478 Les gens l'ont consulté

Here are a few question-based article titles that fit the content:

* How to Execute Python Scripts with User Input Using Subprocess?
* Capturing Output from Python Scripts: A Guide to Subprocess Techniques
* Python Script Execution: Subprocess Methods fo

Exécuter des scripts Python avec la saisie de l'utilisateur à l'aide d'un sous-processus

Lors de l'exécution d'un script Python (a.py) à partir d'un autre script (b.py) via un sous-processus, capturer la sortie du script peut être un défi. Cet article propose des méthodes alternatives pour récupérer la sortie souhaitée.

Méthode 1 : transmission des entrées et capture de la sortie avec un sous-processus

<code class="python">import os
import sys
from subprocess import check_output

script_path = os.path.join(get_script_dir(), 'a.py')
output = check_output([sys.executable, script_path],
                      input='\n'.join(['query 1', 'query 2']),
                      universal_newlines=True)</code>
Copier après la connexion

Méthode 2 : importation de modules et appels de fonctions

Une approche plus flexible consiste à importer le module cible (a) et à appeler une fonction spécifique à l'intérieur de celui-ci. Assurez-vous que a.py utilise la garde if __name__ == "__main__" pour empêcher l'exécution de code indésirable lors de l'importation.

<code class="python">import a

result = [a.search(query) for query in ['query 1', 'query 2']]</code>
Copier après la connexion

Méthode 3 : multitraitement pour l'exécution de requêtes parallèles

Si l'exécution des requêtes est gourmande en CPU, vous pouvez utiliser le multitraitement pour exécuter des requêtes simultanément :

<code class="python">from multiprocessing import freeze_support, Pool
import a

if __name__ == "__main__":
   freeze_support()
   pool = Pool() # use all available CPUs
   result = pool.map(a.search, ['query 1', 'query 2'])</code>
Copier après la connexion

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