Als «subprocess» getaggte Fragen

Mit dem Python-Unterprozessmodul können Sie neue Prozesse erzeugen, eine Verbindung zu deren Eingabe- / Ausgabe- / Fehler-Pipes herstellen und deren Rückkehrcodes abrufen. Verwenden Sie diese Option, um einen Shell-Befehl oder eine ausführbare Datei in Python auszuführen.


16
Shell-Befehl ausführen und Ausgabe ausgeben
Ich möchte eine Funktion schreiben, die einen Shell-Befehl ausführt und seine Ausgabe als Zeichenfolge zurückgibt , unabhängig davon, ob es sich um eine Fehler- oder Erfolgsmeldung handelt. Ich möchte nur das gleiche Ergebnis erzielen, das ich mit der Befehlszeile erzielt hätte. Was wäre ein Codebeispiel, das so etwas tun würde? …
908 python  shell  subprocess 

30
Nicht blockierendes Lesen eines Unterprozesses. PIPE in Python
Ich verwende das Unterprozessmodul , um einen Unterprozess zu starten und eine Verbindung zu seinem Ausgabestream (stdout) herzustellen. Ich möchte in der Lage sein, nicht blockierende Lesevorgänge auf seinem Standard auszuführen. Gibt es eine Möglichkeit, .readline nicht zu blockieren oder zu überprüfen, ob sich Daten im Stream befinden, bevor ich …

29
Verwenden des Moduls 'Unterprozess' mit Zeitüberschreitung
Overа этот вопрос есть ответы на Stapelüberlauf на русском : Прерывание процесса и задержка на исполнение Hier ist der Python-Code, mit dem Sie einen beliebigen Befehl ausführen können, der seine stdoutDaten zurückgibt, oder eine Ausnahme für Exit-Codes ungleich Null auslösen: proc = subprocess.Popen( cmd, stderr=subprocess.STDOUT, # Merge stdout and stderr …

11
So beenden Sie einen Python-Unterprozess, der mit shell = True gestartet wurde
Ich starte einen Unterprozess mit dem folgenden Befehl: p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) Wenn ich jedoch versuche zu töten mit: p.terminate() oder p.kill() Der Befehl wird weiterhin im Hintergrund ausgeführt, daher habe ich mich gefragt, wie ich den Prozess tatsächlich beenden kann. Beachten Sie Folgendes, wenn ich den Befehl ausführe …


8
Python-Unterprozess / Popen mit einer geänderten Umgebung
Ich glaube, dass das Ausführen eines externen Befehls in einer leicht geänderten Umgebung ein sehr häufiger Fall ist. So mache ich das: import subprocess, os my_env = os.environ my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"] subprocess.Popen(my_command, env=my_env) Ich habe das Gefühl, dass es einen besseren Weg gibt. sieht es gut aus
284 python  subprocess  popen 

5
So verbergen Sie die Ausgabe eines Unterprozesses in Python 2.7
Ich verwende eSpeak unter Ubuntu und habe ein Python 2.7-Skript, das eine Nachricht druckt und spricht: import subprocess text = 'Hello World.' print text subprocess.call(['espeak', text]) eSpeak erzeugt die gewünschten Sounds, überfrachtet die Shell jedoch mit einigen Fehlern (ALSA lib ..., keine Socket-Verbindung), sodass ich nicht einfach lesen kann, was …

11
Wie übergebe ich einen String an subprocess.Popen (mit dem Argument stdin)?
Wenn ich folgendes mache: import subprocess from cStringIO import StringIO subprocess.Popen(['grep','f'],stdout=subprocess.PIPE,stdin=StringIO('one\ntwo\nthree\nfour\nfive\nsix\n')).communicate()[0] Ich bekomme: Traceback (most recent call last): File "<stdin>", line 1, in ? File "/build/toolchain/mac32/python-2.4.3/lib/python2.4/subprocess.py", line 533, in __init__ (p2cread, p2cwrite, File "/build/toolchain/mac32/python-2.4.3/lib/python2.4/subprocess.py", line 830, in _get_handles p2cread = stdin.fileno() AttributeError: 'cStringIO.StringI' object has no attribute 'fileno' Anscheinend quakt …
280 python  subprocess  stdin 

5
Tatsächliche Bedeutung von 'shell = True' im Unterprozess
Ich rufe mit dem subprocessModul verschiedene Prozesse auf . Ich habe jedoch eine Frage. In den folgenden Codes: callProcess = subprocess.Popen(['ls', '-l'], shell=True) und callProcess = subprocess.Popen(['ls', '-l']) # without shell Beide arbeiten. Nachdem ich die Dokumente gelesen hatte, wurde mir klar, dass dies shell=Truebedeutet, den Code über die Shell …
260 python  subprocess 


9
Lesen Sie den Teilprozess stdout Zeile für Zeile
Mein Python-Skript verwendet einen Unterprozess, um ein Linux-Dienstprogramm aufzurufen, das sehr laut ist. Ich möchte die gesamte Ausgabe in einer Protokolldatei speichern und dem Benutzer einen Teil davon anzeigen. Ich dachte, das Folgende würde funktionieren, aber die Ausgabe wird in meiner Anwendung erst angezeigt, wenn das Dienstprogramm eine erhebliche Menge …
235 python  subprocess 

13
Drucken Sie die Ausgabe des Unterprozesses ständig, während der Prozess ausgeführt wird
Um Programme von meinen Python-Skripten aus zu starten, verwende ich die folgende Methode: def execute(command): process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) output = process.communicate()[0] exitCode = process.returncode if (exitCode == 0): return output else: raise ProcessException(command, exitCode, output) Wenn ich also einen Prozess wie Process.execute("mvn clean install")starte, wartet mein Programm, …
201 python  subprocess 

1
Wie kann ich ein Arbeitsverzeichnis für Popen angeben?
Gibt es eine Möglichkeit, das laufende Befehlsverzeichnis in Pythons anzugeben subprocess.Popen()? Beispielsweise: Popen('c:\mytool\tool.exe', workingdir='d:\test\local') Mein Python-Skript befindet sich in C:\programs\python Ist es möglich, C:\mytool\tool.exeim Verzeichnis auszuführen D:\test\local? Wie lege ich das Arbeitsverzeichnis für einen Unterprozess fest?
185 python  subprocess  popen 


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.