Wie automatisiere ich Benutzereingaben und rufe JSON-Ausgaben aus Python-Skripten mit einem Unterprozess ab?

Patricia Arquette
Freigeben: 2024-10-26 08:16:30
Original
228 Leute haben es durchsucht

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

Aufrufen von Python-Skripten mit Benutzereingaben mithilfe eines Unterprozesses

In Python stoßen Sie möglicherweise auf ein Szenario, in dem Sie ein Skript ausführen möchten (siehe als „a.py“), das den Benutzer zur Eingabe auffordert und eine JSON-formatierte Ausgabe erzeugt. Um die Ausführung dieses Skripts aus einem anderen Skript (mit dem Namen „b.py“) mithilfe des Unterprozessmoduls von Python zu automatisieren, führen Sie die folgenden Schritte aus:

Importieren Sie die erforderlichen Module:

<code class="python">import os
import sys
from subprocess import check_output</code>
Nach dem Login kopieren

Bestimmen Sie den Pfad zu dem Skript, das Sie ausführen möchten („a.py“):

<code class="python">script_path = os.path.join(get_script_dir(), 'a.py')</code>
Nach dem Login kopieren

Verwenden Sie die Funktion check_output(), um „a.py“ auszuführen und mit Eingaben zu versorgen:

<code class="python">output = check_output([sys.executable, script_path],
                      input='\n'.join(['query 1', 'query 2']),
                      universal_newlines=True)</code>
Nach dem Login kopieren

Dieser Befehl führt Folgendes aus:

  • Stellt „Abfrage 1“ und „Abfrage 2“ als Eingaben für das Skript bereit.
  • Führt das Skript mit dem von sys angegebenen Python-Interpreter aus. ausführbare Datei.
  • Erfasst die Ausgabe des Skripts in der Variablen „Ausgabe“.

Indem Sie Eingaben auf diese Weise bereitstellen, simulieren Sie effektiv die Benutzerinteraktion mit dem Skript. Die Ausgabe kann nun nach Bedarf in Ihrem „b.py“-Skript verwendet werden.

Zusätzliche Alternativen

  • Import- und Aufruffunktion: Sie können das Modul „a.py“ importieren und seine Funktionen direkt aufrufen, um Eingaben bereitzustellen und Ergebnisse abzurufen.
  • Multiprocessing verwenden: Wenn die Abfrageverarbeitung CPU-intensiv ist, sollten Sie die Verwendung von Multiprocessing in Betracht ziehen Führen Sie jede Abfrage in einem separaten Prozess aus, um die Leistung zu verbessern.

Das obige ist der detaillierte Inhalt vonWie automatisiere ich Benutzereingaben und rufe JSON-Ausgaben aus Python-Skripten mit einem Unterprozess ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!