Return value von popen bevor das file-Object geclosed wird
Verfasst: Freitag 12. Januar 2007, 10:53
Hi,
ich möchte in einem Script mit os.popen ein Befehl ausführen, den Rückgabewert des Befehls überprüfen, und wenn es keinen Fehler gab, die Ausgabe des Befehls auswerten.
Funktioniert natürlich nicht, weil dcmdump_return erst definiert wird, nachdem es bereits ausgelesen ist.
Als Lösung speichere ich die Zeilen aus dump erst in eine Liste, schließe dump, prüfe den return value, und bearbeite dann gegebenenfalls den Inhalt der Liste.
Dieser Umweg über die Liste gefällt mir aber nicht sonderlich, das fühlt sich irgendwie unnötig kompliziert an. Habe ich hier vielleicht eine einfachere Möglichkeit übersehen? Ist zwar vermutlich rein kosmetisch, aber ich bin trotzdem für jeden sachdienlichen Hinweis dankbar
ich möchte in einem Script mit os.popen ein Befehl ausführen, den Rückgabewert des Befehls überprüfen, und wenn es keinen Fehler gab, die Ausgabe des Befehls auswerten.
Code: Alles auswählen
dump = os.popen(r'dcmdump c:\powerbook.dcm')
if not dcmdump_return: #hier wird der noch nicht existierende return value abgefragt
for line in dump:
print line
dcmdump_return = dump.close()
Funktioniert natürlich nicht, weil dcmdump_return erst definiert wird, nachdem es bereits ausgelesen ist.
Als Lösung speichere ich die Zeilen aus dump erst in eine Liste, schließe dump, prüfe den return value, und bearbeite dann gegebenenfalls den Inhalt der Liste.
Code: Alles auswählen
dump = os.popen(r'dcmdump c:\powerbook.dcm')
dump_list = []
for line in dump:
dump_list.append(line)
dcmdump_return = dump.close()
if not dcmdump_return:
for line in dump_list:
print line