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?

    
___
1
Antwort

Wie testet man eine Funktion, die Popen verwendet?

Ich schreibe ein Programm, das eine Menge Dateioperationen enthält. Einige Operationen werden ausgeführt, indem subprocess.Popen aufgerufen wird, z. B. split -l 50000 ${filename} , gzip -d -f ${filename} ${filename}. . Nun möchte ich d...
25.06.2014, 02:45
2
Antworten

Unbestimmter Prozess der Daemonisierung von Prozessen in Python

Ich versuche einen Python-Daemon zu erstellen, der andere völlig unabhängige Prozesse startet. Die allgemeine Idee ist, dass ein Shell-Befehl alle paar Sekunden abgefragt wird und sichergestellt wird, dass genau k Instanzen des Befehls ausg...
08.12.2011, 01:40
2
Antworten

Python: subprocess.call defekte Pipe

Ich versuche, ein Shell-Skript in Python aufzurufen, aber es meldet gebrochenen Pipefehler (das Ergebnis ist OK, aber ich möchte die Fehlermeldung nicht in STDERR sehen). Ich habe die Ursache ermittelt und sie kann wie folgt reproduziert werden:...
07.05.2012, 09:40
2
Antworten

Wie starte ich einen pdftk Subprozess in wsgi?

Ich muss einen pdftk-Prozess starten, während ich eine Webanfrage in Django ablege, und darauf warten, dass sie fertig ist. Mein aktueller pdftk-Code sieht so aus: %Vor% Das funktioniert gut, solange ich unter dem Dev-Server laufe (läuft als...
25.09.2011, 03:26
1
Antwort

subprocess.Popen mit relativen Pfaden

Die Dokumente für Popen erwähnen, dass Sie Ihren ausführbaren Pfad nicht relativ angeben können zum 'Arbeitsverzeichnis wechseln' kwarg.    Wenn cwd nicht None ist, wird das aktuelle Verzeichnis des untergeordneten Elements in geändert  ...
28.01.2014, 17:31
4
Antworten

Übergeben einer Liste durch Python an C ++

Ich habe also ein Python-Programm, das .txt-Dateiverzeichnisse findet und dann diese Verzeichnisse als Liste (glaube ich) an mein C ++ - Programm weiterleitet. Das Problem, das ich habe, ist, dass ich nicht sicher bin, wie man die Liste zu C ++...
18.07.2014, 17:16
1
Antwort

Gibt den Wert aus dem Python-Subprozess zurück

Ich möchte die Ausgabe (print-Anweisungen) erhalten und den Status von einem Python-Subprozess zusammen mit der Anzeige von Protokollinformationen zurückgeben. Ich verwende Python 2.5 unter Windows XP. Wie bekomme ich auch den Rückgabecode? Hier...
09.11.2011, 05:46
3
Antworten

Wie kann ich die Standardeingabe eines Subprozesses von einem Python-Iterator einspeisen?

Ich versuche, das subprocess -Modul in Python zu verwenden, um mit einem Prozess zu kommunizieren, der die Standardeingabe liest und die Standardausgabe streamingweise schreibt. Ich möchte, dass der Unterprozess Zeilen von einem Iterator lies...
31.07.2011, 22:05
2
Antworten

Verwenden von Plink (PuTTy) zu SSH über Python

Ich versuche ein Python-Skript zu schreiben, das SSH an einen Server sendet und einen Befehl ausführt. Ich verwende Python 2.6 unter Windows und habe Plink und Paegen (für ssh-Schlüssel) installiert und alle zu meinem Pfad hinzugefügt. Wenn i...
09.11.2011, 16:17
1
Antwort

Python Subprozess führt Leerzeichen ein

Ich habe ein Python-Skript, das subprocess.Popen verwendet, um Windows * .exe-Dateien auszuführen. Alle EXEs außer einem erzeugen die erwartete Ausgabe. Wenn mit print () gedruckt wird, enthält die Ausgabe Leerzeichen zwischen jedem Zeichen der...
11.01.2016, 20:29