Seite 1 von 1

Rückgabe von Shell-Kommando in Variable

Verfasst: Montag 8. Oktober 2007, 15:50
von Amberfox
Hallo Forum,

ich bin wirklich ein Python-Neuling und habe bereits viel zu dem Thema gelesen und gesucht, aber wenn ich es nachprogrammiere, wirds nichts :/

Mein Problem....

Ich möchte gerne den Output eines Shell-Kommandos in eine variable schreiben. Ganz simpel habe ich folgendes geschrieben:

Code: Alles auswählen

#!/usr/bin/python

import subprocess
mycmd = "ls -ltr"
myls = subprocess.Popen(mycmd, shell=True)
Das funktioniert auch, nur ich erhalte den Output auch direkt auf der CMD. Wenn ich nun zusätzlich noch ein print mit einfüge, erhalte ich zwar den Output, aber auch noch zusätzliche Informationen wie:
<subprocess.Popen object at 0xb7d70e2c>

Kann mir jemand auf den richtigen Weg helfen??

Grüße und Danke im Vorraus

Jochen

Re: Rückgabe von Shell-Kommando in Variable

Verfasst: Montag 8. Oktober 2007, 15:56
von gerold
Amberfox hat geschrieben:Ich möchte gerne den Output eines Shell-Kommandos in eine variable schreiben.
Hallo Jochen!

Dafür ist subprocess da. Das weißt du ja schon. Hier findest du die Hilfe dazu: http://docs.python.org/lib/module-subprocess.html

Code: Alles auswählen

#!/usr/bin/python

import subprocess
args = ["ls", "-ltr"]
proc = subprocess.Popen(args, stdout = subprocess.PIPE)
retval = proc.stdout.read()
print retval
mfg
Gerold
:-)

Verfasst: Montag 8. Oktober 2007, 17:25
von Amberfox
Hi,

super!! Das geht...
Ich hatte das mit der PIPE sogar auch schon gelesen, aber ich hatte die PIPE dann nicht abgefragt und folglich immer Fehlermeldungen erhalten wie etwa "Broken pipe"

Grüße und Danke!

Jochen