Leerer Übergabeparameter abfangen

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.
madthomas
User
Beiträge: 35
Registriert: Dienstag 7. August 2007, 10:32
Wohnort: WND
Kontaktdaten:

Leerer Übergabeparameter abfangen

Beitragvon madthomas » Donnerstag 24. Juli 2008, 10:20

Hallo,

ich hab ein Problem ich hab einen XML-Parsergeschrieben. Jetzt will ich das mit Hilfer der Übergabeparameter beim Aufruf die entsprechenden Zeilen raus geschrieben werden

Code: Alles auswählen

argument1 = sys.argv[1]
argument2 = sys.argv[2]

Wenn ich aber den Aufruf mit nur einem Parameter mache dann Schreibt er immer das argument2 nicht vorhanden ist

habs auch mal mit ner if abfrage versucht

Code: Alles auswählen

if not sys.argv[2]:
    print "2. Parameter nicht vorhanden"


Wie kann ich das überprüfen bzw abfangen
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Donnerstag 24. Juli 2008, 10:29

Hoi,

aber Du kennst doch die Länge von sys.argv:

Code: Alles auswählen

len(sys.argv)

Damit kannst Du doch arbeiten oder habe ich Dein Problem falsch verstanden?

Im Übrigen: Du kennst [mod]optparse[/mod]?

HTH
Christian
EyDu
User
Beiträge: 4866
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Beitragvon EyDu » Donnerstag 24. Juli 2008, 10:31

Code: Alles auswählen

try:
    argument2 = sys.argv[2]
except IndexError:
    argument2 = "default value"
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Beitragvon cofi » Donnerstag 24. Juli 2008, 10:52

CM hat geschrieben:aber Du kennst doch die Länge von sys.argv:

Code: Alles auswählen

len(sys.argv)

Damit kannst Du doch arbeiten oder habe ich Dein Problem falsch verstanden?


Na wenn er die Anzahl der Parameter benötigt sollte er lieber

Code: Alles auswählen

len(sys.argv[1:])
benutzen ;)
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Donnerstag 24. Juli 2008, 11:24

cofi hat geschrieben:

Code: Alles auswählen

len(sys.argv[1:])

An welcher Stelle im Code das Berücksichtigung findet ist Geschmackssache, oder? edit: und Situationsabhängig.

Wer ist online?

Mitglieder in diesem Forum: __deets__