Heim > Artikel > Backend-Entwicklung > Hier sind einige Titel im Fragestil, die zum Inhalt Ihres Artikels passen: * Wie erfasst man die Ausgabe eines Unterprozesses mit Benutzereingaben in Python? * Ausgabe von Unterprozessen abrufen, die Benutzer I erfordern
Zugriff auf die Ausgabe eines Unterprozesses mit Benutzereingaben in Python
In Python können Sie das Unterprozessmodul verwenden, um externe Skripte auszuführen. Wenn Sie jedoch ein Skript aufrufen, das zur Benutzereingabe auffordert, kann es schwierig sein, die Ausgabe innerhalb des aufrufenden Skripts zu erhalten. In diesem Artikel werden Lösungen für dieses Problem untersucht.
Lösung 1: Verwendung von check_output() mit Input
Mit der Funktion subprocess.check_output() können Sie ein Skript ausführen und erfassen seine Ausgabe. Um Eingaben an das Skript zu übergeben, verwenden Sie den Eingabeparameter:
<code class="python">import os import subprocess # Get script directory script_path = os.path.join(os.getcwd(), 'a.py') # Execute the script and capture output output = subprocess.check_output([sys.executable, script_path], input='\n'.join(['query 1', 'query 2']), universal_newlines=True)</code>
Lösung 2: Modulimport und Funktionsaufruf
Ein alternativer Ansatz besteht darin, das Skriptmodul zu importieren und rufen Sie eine bestimmte Funktion auf:
<code class="python">import a results = [a.search(query) for query in ['query 1', 'query 2']]</code>
Stellen Sie sicher, dass das importierte Skript den if __name__ == "__main__": Guard verwendet, um zu verhindern, dass sein Code beim Import ausgeführt wird.
Lösung 3: Multiprocessing
Wenn die Abfrageverarbeitung CPU-intensiv ist, können Sie die Leistung verbessern, indem Sie die Ausführung mithilfe von Multiprocessing parallelisieren:
<code class="python">from multiprocessing import freeze_support, Pool import a freeze_support() pool = Pool() # Use all available CPUs results = pool.map(a.search, ['query 1', 'query 2'])</code>
Das obige ist der detaillierte Inhalt vonHier sind einige Titel im Fragestil, die zum Inhalt Ihres Artikels passen: * Wie erfasst man die Ausgabe eines Unterprozesses mit Benutzereingaben in Python? * Ausgabe von Unterprozessen abrufen, die Benutzer I erfordern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!