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

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!