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

DDD
Freigeben: 2024-10-27 03:04:03
Original
791 Leute haben es durchsucht

Here are a few question-style titles that fit the content of your article:

* How to Capture Output from a Subprocess with User Input in Python? 
* Getting Output from Subprocesses That Require User Input in Python: A Guide
* Interacting with Subprocesses

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

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