subprocess

___ qstnhdr ___ Kann ich subprocess.call die Ausgabe des Aufrufs in eine Zeichenfolge schreiben? ___ answer5902554 ___

%code% verwendet dieselben Argumente wie %code% , einschließlich der Argumente %code% und %code% . Details finden Sie in der Dokumentation.

    
___ answer24638593 ___

Dies ist eine Erweiterung von mantazers Antwort auf python3. Sie können weiterhin den Befehl %code% in python3:

verwenden %Vor%

aber jetzt gibt es uns eine Byte-Zeichenfolge. Um eine echte Python-Zeichenfolge zu erhalten, müssen wir decode verwenden:

%Vor%

Wenn %code% als Kodierung und nicht nur als Standard %code% verwendet wird, sollte dies (zumindest theoretisch) für jedes Betriebssystem funktionieren.

Der abschließende Zeilenumbruch (und alle anderen zusätzlichen Leerzeichen) können einfach mit %code% entfernt werden. Der letzte Befehl lautet also:

%Vor%     
___ tag123python ___ Python ist eine dynamische und stark typisierte Programmiersprache, die die Usability betont. Zwei ähnliche, aber größtenteils inkompatible Versionen von Python sind weit verbreitet (2 und 3). Wenn Sie eine versionsspezifische Python-Frage haben, sollten Sie die Tags [python-2.7] oder [python-3.x] zusätzlich zum Tag [python] verwenden. Wenn Sie eine Python-Variante wie jython, pypy, iron-python usw. verwenden, kennzeichnen Sie diese bitte entsprechend. ___ answer5902720 ___

Nein, Sie können die Ausgabe von subprocess.call () nicht direkt in eine Zeichenfolge lesen.

Um die Ausgabe eines Befehls in eine Zeichenfolge zu lesen, müssen Sie subprocess.Popen (), z. B.:

, verwenden %Vor%

cmd_out hat die Zeichenfolge mit der Ausgabe des Befehls.

    
___ tag123subprozess ___ Das Python-Subprozessmodul ermöglicht es Ihnen, neue Prozesse zu generieren, eine Verbindung zu ihren Eingabe- / Ausgabe- / Fehlerrohren herzustellen und deren Rückkehrcodes zu erhalten. Verwenden Sie es, um einen Shell-Befehl oder eine ausführbare Datei in Python auszuführen. ___ answer24083941 ___

Das Modul %code% stellt eine Methode %code% zur Verfügung, die den bereitgestellten Befehl mit Argumenten (falls vorhanden) ausführt und seine Ausgabe als Byte-Zeichenfolge zurückgibt.

%Vor%

Der obige Code wird %code%

ausgeben

Siehe Dokumentation: Ссылка

    
___ qstntxt ___

Ich möchte subprocess.call machen und die Ausgabe des Aufrufs in eine Zeichenkette bringen. Kann ich das direkt tun, oder muss ich es in eine Datei pipen und dann daraus lesen?

Mit anderen Worten, kann ich stdout und stderr irgendwie in eine Zeichenkette umleiten?

    
___
2
Antworten

Das Python-Subprozessmodul gibt bei segfault kein stdout zurück

Ich laufe eine C-ausführbare Datei von Python und diese ausführbare Datei manchmal segfaults. Wenn es segfaults gibt das Subprozessmodul nichts in stdout oder stderr zurück. Beispielcode: %Vor% Die Quelle für a.out ist: %Vor% Die A...
14.05.2012, 02:57
1
Antwort

Schreiben Sie in den Dateideskriptor 3 eines Python-Subprozess.Popen-Objekts

Wie schreibe ich in den Dateideskriptor 3 eines subprocess.Popen-Objekts? Ich versuche, die Umleitung im folgenden Shell-Befehl mit Python zu erreichen (ohne Named Pipes zu verwenden): %Vor%     
18.05.2011, 19:46
1
Antwort

Python im GNU-Bildschirm wird möglicherweise inaktiv, wenn der Bildschirm entfernt wird

Ich habe ein Python-Skript, das Multiprocessing und Subprozess verwendet, um mehrere externe Befehle parallel mit verschiedenen Argumenten zu starten. Der Code kann hier gefunden werden. Aus praktischen Gründen starte ich dieses Skript in e...
08.05.2011, 01:58
4
Antworten

Speichern von stdout aus subprocess.Popen Zeile für Zeile

Mein Python-Skript verwendet den Subprozess, um ein anderes Skript aufzurufen, das die Ausgabe sehr langsam (Zeile für Zeile) erzeugt. Ich möchte die Ausgabe Zeile für Zeile in Datei nicht schreiben, wenn der gesamte Prozess endet und schreibt d...
02.03.2011, 17:45
2
Antworten

Trennen Sie einen Subprozess, der mit dem Python-Multiprocessing-Modul gestartet wurde

Ich möchte einen Prozess mit dem Modul multiplprocessing in Python erstellen, aber sicherstellen, dass er nach dem Prozess, der die Subprozess-Exits erstellt hat, weiterläuft. Ich kann die erforderliche Funktionalität mit dem Unterprozessmodu...
18.11.2009, 16:48
1
Antwort

Warum startet python subprocess.Popen einen Subprozess über cmd.exe?

Ich rufe Unterprozess wie folgt auf: %Vor% Es scheint, dass statt myexe.exe direkt durch cmd.exe geht. Kann ich cmd.exe hier vermeiden?     
08.11.2011, 19:24
3
Antworten

Unterprozess in Windows beenden, Zugriff verweigert

- %Vor% Ausgabe: WindowsError: [Error 5] Access is denied Wie kann ich den Chrome-Prozess beenden? Python 2.6 unter Windows XP.     
19.05.2010, 18:06
1
Antwort

OSError: [WinError 6] Das Handle ist ungültig, wenn der Subprozess von Python 3.6 aufgerufen wird

Ich portiere ein Projekt nach Python3 und es tritt ein unerwarteter Fehler unter Windows auf: Grundsätzlich unter Python 3.6 unter Windows, jedes Mal, wenn ein Prozess mit Subprozess erstellt wird, habe ich diese Ausnahme: %Vor% Es spielt...
28.11.2017, 15:52
1
Antwort

Gibt es eine Möglichkeit, doctest und sphinx zum Testen und Dokumentieren von Befehlszeilenanwendungen zu verwenden?

Ich habe ein Python-Modul, für das ich ein Tutorial schreibe, in dem ich Sphinx einschließlich Doc-Tests verwende. Dieses Modul enthält einige Hilfsprogramme. Ich möchte diese Hilfsprogramme in die Dokumentation aufnehmen und lassen Sie...
03.04.2014, 16:24
1
Antwort

Wenn ein Prozess an eine Liste angehängt wird (aber nichts damit getan wird), ändert sich das Programmverhalten

Im folgenden Programm, wenn ich den Prozess an eine Liste angehängt habe (eine scheinbar sinnlose Sache), läuft es wie erwartet. Aber wenn ich den Anhang entferne, wird der Destruktor der Prozesse viele Male aufgerufen, bevor er überhaupt ausgef...
05.11.2011, 20:38