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