Comment automatiser la saisie utilisateur et récupérer la sortie JSON à partir de scripts Python avec un sous-processus ?

Patricia Arquette
Libérer: 2024-10-26 08:16:30
original
228 Les gens l'ont consulté

How to Automate User Input and Retrieve JSON Output from Python Scripts with subprocess?

Appel de scripts Python avec une entrée utilisateur à l'aide d'un sous-processus

En Python, vous pouvez rencontrer un scénario dans lequel vous souhaitez exécuter un script (appelé comme "a.py") qui invite l'utilisateur à entrer et produit une sortie au format JSON. Pour automatiser l'exécution de ce script à partir d'un autre script (nommé "b.py") à l'aide du module de sous-processus de Python, suivez ces étapes :

Importez les modules nécessaires :

<code class="python">import os
import sys
from subprocess import check_output</code>
Copier après la connexion

Déterminez le chemin au script que vous souhaitez exécuter ("a.py") :

<code class="python">script_path = os.path.join(get_script_dir(), 'a.py')</code>
Copier après la connexion

Utilisez la fonction check_output() pour exécuter "a.py" et fournissez-lui l'entrée :

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

Cette commande effectue les opérations suivantes :

  • Fournit "query 1" et "query 2" en entrée du script.
  • Exécute le script à l'aide de l'interpréteur Python spécifié par sys. exécutable.
  • Capture la sortie du script dans la variable 'output'.

En fournissant une entrée de cette manière, vous simulez efficacement l'interaction de l'utilisateur avec le script. La sortie peut maintenant être utilisée selon les besoins dans votre script "b.py".

Alternatives supplémentaires

  • Fonction d'importation et d'appel : Vous pouvez importer le module "a.py" et appeler ses fonctions directement, en fournissant des entrées et en récupérant les résultats.
  • Utiliser le multitraitement : Si le traitement des requêtes est gourmand en CPU, envisagez d'utiliser le multitraitement pour exécutez chaque requête dans un processus distinct pour améliorer les performances.

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!