python-sys.argv[1] vs. sys.argv[1:]

Schrieb ich diesen code:

#!/usr/bin/env python
import sys

if sys.argv[1] :
    print sys.argv[1]

Versuchen, diese in der Konsole, wenn eingegeben:
$ python py.py xxx
druckt xxx
Wenn ich lassen Sie es ohne parameter, wird eine Fehlermeldung angezeigt:

Traceback (most recent call last): File "py.py", line 4, in
wenn sys.argv[1] : IndexError: list index out of range

Nun mit ein paar änderungen:

#!/usr/bin/env python
import sys

if sys.argv[1:] :
    print sys.argv[1:]

Sehen Sie, ich änderte [1] [1:] und nun, wenn ich geben Sie "$ python py.py " in der Konsole und vergessen Sie den parameter, der gibt keine Fehler.
Was passiert hinter den kulissen?

  • Verwenden Sie den len-Funktion in der if-Anweisung if len(sys.argv) > 1:
  • Ich denke if sys.argv[1:]: ist sehr fein, und danach können Sie sicher sein, dass sys.argv[1] vorhanden und können genutzt werden.
InformationsquelleAutor wertvoll | 2013-12-02
Schreibe einen Kommentar