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?

    
___
3
Antworten

Wie schließe ich die Stdout-Pipe, wenn ich einen mit dem Python-Subprozess Popen gestarteten Prozess abbringe?

Ich frage mich, ob es möglich ist, die Kommunikationsleitung herunterzufahren, wenn ein Subprozess in einem anderen Thread gestartet wird. Wenn ich communicate () nicht anrufe, funktioniert kill () wie erwartet und beendet den Prozess nach einer...
26.10.2009, 11:18
2
Antworten

Wie kann python subprocess.Popen siehe select.poll und später nicht? (Wählen Sie 'Modul' Objekt hat kein Attribut 'Poll')

Ich verwende die (ehrfürchtige) mrjob -Bibliothek von Yelp, um meine Python-Programme in Amazon Elastic Map Reduce auszuführen. Es hängt vom Subprozess in der Standard-Python-Bibliothek ab. Von meinem Mac läuft python2.7.2, alles funktioniert...
31.01.2012, 21:53
1
Antwort

Deadlock in Pythons Subprozess popen

Ich habe ein Problem, bei dem Popen festgefahren ist. Genauer gesagt, der Thread (nicht der Haupt-Thread), der den Popen ausführt, bleibt bei: %Vor% Mit ps kann ich sehen, dass der Python-Prozess sich selbst verzweigt hat, aber os.execvp noc...
11.02.2012, 04:24
1
Antwort

Python-Subprozess Hilfe

Ich teste den Python-Subprozess und bekomme immer wieder folgenden Fehler: %Vor% Mein Skript ist: %Vor% Weißt du was passiert?     
24.06.2010, 20:14
3
Antworten

So rufen Sie ssh durch das Unterprozessmodul auf, so dass es die Variable SSH_ASKPASS verwendet

Ich schreibe eine GUI, die SSH-Befehle verwendet. Ich habe versucht, das Subprozess-Modul zu verwenden, um ssh aufzurufen und die Umgebungsvariable SSH_ASKPASS zu setzen, so dass meine Anwendung ein Fenster öffnen kann, in dem nach dem SSH-Passw...
24.11.2009, 01:45
1
Antwort

Python3 Unterprozess kommunizieren Beispiel

Ich bin neu in der Unterverarbeitung. Ich brauche nur ein sehr einfaches Win32-Beispiel für communicate () zwischen parent.py und child.py . Eine Zeichenfolge, die von parent.py an child.py gesendet, von child.py geändert und an parent.py...
28.12.2011, 06:46
2
Antworten

Deaktivieren Sie die Konsolenausgabe von subprocess.Popen in Python

Ich starte Python 2.5 unter Windows und irgendwo im Code, den ich habe %Vor% um das IE-Fenster mit pid zu beenden. Das Problem ist, dass ich, ohne das Piping in Popen einzurichten, trotzdem eine Ausgabe an die Konsole bekomme - SUCCESS: Der...
07.08.2009, 13:34
2
Antworten

Python: Persistente Shell-Variablen im Subprozess

Ich versuche, eine Reihe von Befehlen mit Pythons Subprozess-Modul auszuführen, aber ich muss Shell-Variablen mit dem Export vor dem Ausführen festlegen. Natürlich scheint die Shell nicht persistent zu sein, also wenn ich später einen Befehl aus...
14.07.2009, 15:19
1
Antwort

subprocess.call env var

Ich benutze Popen, weil ich das env brauche, so: %Vor% Das Problem ist, dass Popen den Befehl als neuen Thread ausführt. Gibt es eine Möglichkeit, dass ich die env an subprocess.call übergeben oder Popen daran hindern könnte, ein...
05.07.2012, 18:51
2
Antworten

Python-Pipeline-Ausgabe zwischen zwei Subprozessen

Ich arbeite an etwas Code, der DD ein Blockgerät über SSH blockiert, und ich möchte dies mit Unterprozess tun, so dass ich den Status von DD während der Übertragung überwachen kann (den DD-Prozess mit SIGUSR1 um zu bekommen) sein aktueller Zusta...
31.01.2011, 01:27