Heim >Backend-Entwicklung >Python-Tutorial >Wie automatisiere ich Benutzereingaben und rufe JSON-Ausgaben aus Python-Skripten mit einem Unterprozess ab?

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

Patricia Arquette
Patricia ArquetteOriginal
2024-10-26 08:16:30297Durchsuche

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>

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>

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>

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!

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