Kein Output

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
DaSch
User
Beiträge: 72
Registriert: Mittwoch 28. März 2007, 20:04
Kontaktdaten:

Wie realisiere ich am besten ein verbose/quiet switch für ein Kommandozeile programm, ich dachte am besten wäre den sys.stdout einfach ins leere laufen zu lassen. Doch ich komm irgendwie nicht dahin das stdout in ein file zu speichern dass niemand sieht und sehen wird

Edit: Außerdem würde ich auch gerne noch die möglichkeit haben etwas in ein log zu schreiben und es auf dem Bildschirm auszugeben

Also quasi so dass ich 3 optionen habe quiet,verbose,log

wenn ich quiet mache dann gibts gar kein output
wenn ich log mache dann nur ins log
wenn ich verbose und log mache dann halt beides
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Ich würde an Deiner Stelle vom [mod]logging[/mod]-Modul Gebraucht machen. Das dürfte am einfachsten sein.

Gruß,
Christian
DaSch
User
Beiträge: 72
Registriert: Mittwoch 28. März 2007, 20:04
Kontaktdaten:

Also vom Prinzip her klappt das jetzt ganz schön, ich krieg aber nach jeder Zeile den Fehler AttributeError: 'str' object has no attribute 'format'

Das Problem liegt aber in der Library, weil das da fromatiert wird, aber ich versteh nicht wieso ich den Fehler rauskriege, im beispiel wird auch einfach ein String übergeben, das Beispiel müsste also dann auch diesen Fehler ausliefern
CrackPod
User
Beiträge: 205
Registriert: Freitag 30. Juni 2006, 12:56

Hallo,

wenn du gar nichts ausgeben möchtest kannst du(vorrausgesetzt du benutzt irgendein Linux/Unix-Derivat) stdout nach /dev/null umleiten.

LG
Hi! I'm a .signature virus! copy me into your .signature file to help me spread!
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

DaSch: Quellcode + Traceback bitte.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Kommandozeilenschalter wie `-v` und `-q` kannst du mit dem `optparse`-Modul (siehe Beispiele) realisieren.
BlackJack

@CrackPod: Wenn man sich den Namen für das "Null-Gerät" aus `os.devnull` holt, funktioniert das auch plattformübergreifend. DOS/Windows kennt so etwas nämlich auch. Da heisst die Datei 'nul' und es ist egal in welchem Verzeichnis man sie öffnet! Was zur Folge hat, dass man *nirgends* eine echte Datei mit diesem Namen anlegen kann.
Antworten