Optparse mit mehreren Argumenten

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
sprudel
User
Beiträge: 248
Registriert: Donnerstag 8. März 2007, 17:12

Sonntag 17. Februar 2008, 10:42

Hallo
gibt es eine Möglichkeit dass ich optparse mehrere Argumente übergeben kann?
Ich stelle mir das folgendermaßen vor:
shredfiles a.txt b.txt c.txt
aber auch:
shredfiles -x -v a.txt b.txt c.txt
BlackJack

Sonntag 17. Februar 2008, 10:53

Ich verstehe die Frage nicht so ganz!? Denkst Du man könnte nur `-x` oder nur `-v` aber nicht beides angeben? Wie sinnlos wäre dass denn!?
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

Sonntag 17. Februar 2008, 11:15

ich glaube, dass er die Optionen x, y angeben will und anschliessend z.B. eine Liste von Filename übergeben will
sprudel
User
Beiträge: 248
Registriert: Donnerstag 8. März 2007, 17:12

Sonntag 17. Februar 2008, 11:29

DatenMetzgerX hat geschrieben:ich glaube, dass er die Optionen x, y angeben will und anschliessend z.B. eine Liste von Filename übergeben will
Genau - ich möchte am Anfang alles parsen, aber am Schluss eben eine Dateiliste.
Beispiel der rm -Befehl unter Linux
ich kann folgendes machen:
rm file1 file2 file3
aber auch folgendes:
rm -r -f file1 file2 file3
oder auch:
rm -r file1 file2 file3

sowas in der Richtung ;-)
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Sonntag 17. Februar 2008, 11:48

Die `parse_args'-Methode des `OptionParser'-Objekts gibt sowohl ein Objekt mit den Optionen als auch eine Liste mit Argumenten zurück, die nach dem Optionen-Parsing übrig bleiben.

Etwas wie

Code: Alles auswählen

from optparse import OptionParser

parser = OptionParser()
parser.add_option('-x', dest='x')
parser.add_option('-v', dest='v')
(options, args) = parser.parse_args()
sollte es also tun, wobei hier `args' hier dann die Liste mit den Dateien/whatever wäre.
Antworten