Systembefehle einlesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Sonntag 6. Oktober 2002, 17:59

Heute mal was einfaches ohne QT :D

Erstens: Wenn ich auf meine Linuxkiste tar mit der option --total angebe, erzählt mir tar anschließend, wieviele Bytes insgesamt geschrieben wurden. Das bekomme ich aber in Python (Version 2.1.1) nicht eingelesen. Wie bekomme ich Zugriff darauf?

Zweitens: Wenn ich ein Systemprogramm aufrufe und es kommt zu einem Fehler, dann sehe ich das bei einer Pythonoberfläche ja auch nicht. Wie fangt Ihr systemfehler ab und zeigt sie an?

Hans
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Sonntag 6. Oktober 2002, 20:18

Ich schon wieder!

os.popen3() oder popen2.popen3() sind wohl die beste Wahl:


>>> import os
>>> stdIn,stdOut,stdErr = os.popen3("ls gibts gibtsnicht")
>>> print stdOut.readlines()
['gibts\n']
>>> print stdErr.readlines()
['ls: gibtsnicht: Datei oder Verzeichnis nicht gefunden\n']
>>>


Jan
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Sonntag 6. Oktober 2002, 22:14

Prima, hat bestens geklappt. Aber wofür ist denn stdIn? Kann man auf dem Wege das aufgerufene Programm etwa auch füttern?

Hans
Antworten