[Python-de] Shell-Rückgabewerte verarbeiten

D. Schreiber dschreiber at arcor.de
Die Dez 13 20:52:21 CET 2005


Hallo,

> > Ich möchte den Shell-Befehl "dcfldd if=/dev/hda hash=md5,sha1
> > of=/mnt/sicherung.dd" ausführen. dcfldd gibt nach Beendigung die
> > Hashwerte md5 und sha1 von hda aus. Diese Werte würde ich ganz gern
> > weiterverabeiten. Wie komme ich an die Werte ran?


> Mit os.popen4() bekommst du einen Filedescriptor und den kannst du
> auslesen. Ob das Auslesen der Statusanzeige klappt weiß ich nicht. Oft
> schreiben die Programme nur einen Statusbar (wie zB bei scp), wenn sie
> mit einem Terminal verbunden sind.

Habe jetzt verschieden Sachen ausprobiert, hatte aber nicht wirklich Erfolg.
Mit Hilfe des Filedescriptor kann ich zwar auf die Ausgabe des Befehls 
zugreifen, ist aber nicht befriedigend. Wenn ich per readline(s) auf die 
Datei zugreife, wartet python scheinbar bis der Befehl abgearbeitet ist.
Ich könnte mir vorstellen, in einer Schleife den Status der 
Befehlsverarbeitung abzufragen und ähnlich tail die Änderung der Ausgabe mit 
Hilfe des Filedescriptor abzufangen. Ist sowas möglich? Wenn ja, wie?
Für Codeschnipsel wäre ich dankbar.

Gruß
Dennis