exit-code bei os.popen oder artverwandten Befehlen

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
mercurius
User
Beiträge: 2
Registriert: Donnerstag 7. November 2013, 01:52

Hallo zusammen,

ich möchte innerhalb einer Schleife einen unrar-Befehl so lange aufrufen, bis das unrar den exit-code 0 zurückliefert, also erfolgreich war. (unrar t -pPassword dateiname), wobei password ein Element einer Liste ist, also liste[x].
Betriebssystem ist Linux, Python-Version 2.75.

Leider habe ich unter den diversen Möglichkeiten, den unrar-befehl abzusetzen keinen gefunden, bei dem ich den exit-code von unrar zurückerhalte.
Eventuell wäre es möglich, den Aufruf in try - except zu verpacken, aber da stört mich, daß bei jedem falschen PW eine exception ausgelöst und damit die Routine doch ziemlich verlangsamt wird. Oder mache ich da einen Denkfehler?

Als Anfänger bin ich dankbar für jeden zweckdienlichen Hinweis zur Lösung meines Problems.
Danke

Heinz
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Warum nimmst du nicht einfach rarfile?
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
BlackJack

@mercurius: Ansonsten ist zum ausführen von externen Programmen das `subprocess`-Modul zuständig. Da kann man auch den Exit-Code abfragen beziehungsweise gibt es sogar schon eine Funktion die einen Code ungleich 0 über eine Ausnahme meldet.
mercurius
User
Beiträge: 2
Registriert: Donnerstag 7. November 2013, 01:52

Danke für eure Antworten.

Heinz
Antworten