Seite 1 von 1

(gelöst)Die Verwendung von action="store_true"

Verfasst: Montag 29. September 2008, 17:04
von Schaf220
Moin alle zusammen,
Ich hab vollgendes Problem, und zwar habe ich das Modul Optparse benutzt und habe jetzt vier Schalter "-c" für compres, "-u" für unkommpress, "-e" für die extension und "-q" für quiet.
Für "-c" und "-u" benötigt man einen Dateiennamen, für "-q" aber nicht wenn dieser Schalter aktiviert wird sollen keine Bildschrimanweisungen kommen
Nur sagt der mir immer wenn ich "-q" ohne Variable aufrufe, das ich den Schalter falsch verwende.
Aufgerufen werden soll das so:

python dateiname.py -c test1.txt [-e z.B. abc] [-q]
Die "[] "stehen für einen optionalen Befehl.
Ich habe gehört das ich mit action = "store_true arbeiten muss, aber das hat irgentwie nicht hingehauen. Wie benutze ich die Variable action?

Code: Alles auswählen

#Parser

parser = OptionParser()

parser.add_option("-c", "--compress", dest="compress",
                  help="File will be compress",
                  metavar="FILE")
parser.add_option("-u", "--uncompress", dest="uncompress",
                  help="liste wird angezeigt",
                  metavar="FILE")
parser.add_option("-e", "--extension", dest="extension",
                  help="add your own extension",
                  metavar="FILE")
parser.add_option("-q", "--quiet", dest="quiet",
                  help="programm will works without soft copy",
                  action="store_true")


(options, args) = parser.parse_args()

Verfasst: Montag 29. September 2008, 17:14
von BlackJack
Also ich bekomme einen `NameError` weil `OptionParser` nicht definiert ist.

Wenn ich das importiere, dann verstehe ich Dein Problem nicht!? `-q` bringt jedenfalls keine Fehlermeldung.

Probiere die angeblich nicht funktionierenden Beispiele doch bitte vorher aus.

Ansonsten noch ein paar Anmerkungen zur Kommandozeilen API: Optionen sollten wie der Name schon sagt "optional" sein, bei Dir muss man aber mindestens '-c' oder '-u' angeben, das ist also nicht wirklich optional. Schau Dir mal an, wie andere Kompressionsprogramme das lösen.

Und bei '-e' die Metavariable 'FILE' zu nennen ist IMHO etwas verwirrend.

Verfasst: Montag 29. September 2008, 17:36
von Schaf220
Danke aber was heist IMHO?

Ich hab mein Problem grade durch zufall gelöst, aber trotzdem danke!

Verfasst: Montag 29. September 2008, 18:17
von Leonidas
Schaf220 hat geschrieben:Danke aber was heist IMHO?
In my humble opinion = meiner bescheidenen Meinung nach.

Verfasst: Montag 29. September 2008, 18:28
von Schaf220
Besten Dank