Python Befehlszeilenargumente
Python Befehlszeilenargumente
Python bietetgetopt Modul Befehlszeilenargumente zu bekommen.
$ python test.py arg1 arg2 arg3
Python kann auch inder sys sys.argvverwendet werden , um Kommandozeilenargumente erhalten:
sys.argv ist eine Liste der Befehlszeilenparameter.
len (sys.argv) ist die Anzahl der Befehlszeilenargumente.
HINWEIS: sys.argv [0] gibt den Namen des Skripts.
Beispiele
test.py Datei Code ist wie folgt:
#!/usr/bin/python # -*- coding: UTF-8 -*- import sys print '参数个数为:', len(sys.argv), '个参数。' print '参数列表:', str(sys.argv)
Die Umsetzung des obigen Codes ist die Ausgabe:
$ python test.py arg1 arg2 arg3 参数个数为: 4 个参数。 参数列表: ['test.py', 'arg1', 'arg2', 'arg3']
getopt Modul
getopt Modul ist dedizierte Verarbeitungsmodul Kommandozeilenparameter verwendet Befehlszeilenoptionen und Parameter zu erhalten, ist sys.argv. Die Kommandozeilenoption macht das Programm flexibler Parameter. Unterstützen Short-Option-Modus (-) und lange Optionen Modus (-).
Das Modul bietet zwei Methoden und eine Exception-Handler die Befehlszeilenargumente zu analysieren.
getopt.getopt Verfahren
getopt.getopt Methoden zum Analysieren der Syntax Befehlszeilenparameterliste ist wie folgt:
getopt.getopt(args, options[, long_options])
Methodenparameter:
args: Um die Befehlszeilenargument Liste analysieren.
Optionen: die Format - String, der Doppelpunkt Optionennach (:) bezeichnet zu definieren , dass diese Option die zusätzlichen Parameter haben muss, ohne dass der Doppelpunkt zeigt an, dass diese Option nicht zusätzliche Parameter ist.
long_options: definieren das Format der Liste,long_options nach dem Gleichheitszeichen (=) sagte, wenn diese Option gesetzt ist, gibt es zusätzliche Parameter sein muss oder nicht zusätzliche Parameter.
Diese Methode liefert ein Wert besteht aus zwei Elementen: Die erste ist die(Option, Wert) Tupel.Die zweite ist eine Liste von Parametern, einschließlich derjenigen, die dies nicht tun '-' oder '-' Parameter.
Ein anderes Verfahren ist getopt.gnu_getopt, nicht viel hier beschrieben zu tun.
Ausnahme getopt.GetoptError
Ist das nicht in der Liste der Parameter gefunden oder Optionen gewünschten Parameter löst die Ausnahme ist leer.
Exception Argument ist ein String, der den Fehler darstellt. Fehlermeldung im Zusammenhang mit Optionen undentscheiden sich für die msg- Attribut.
Beispiele
Angenommen, wir solch ein Skript erstellt haben, können Sie zwei Zeilen in der Skriptdatei Dateiname Befehl übergeben, während wir eine andere Option verwenden, um das Skript anzuzeigen. Verwenden Sie das folgende Skript:
usage: test.py -i <inputfile> -o <outputfile>
test.py Datei Code ist wie folgt:
#!/usr/bin/python # -*- coding: UTF-8 -*- import sys, getopt def main(argv): inputfile = '' outputfile = '' try: opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="]) except getopt.GetoptError: print 'test.py -i <inputfile> -o <outputfile>' sys.exit(2) for opt, arg in opts: if opt == '-h': print 'test.py -i <inputfile> -o <outputfile>' sys.exit() elif opt in ("-i", "--ifile"): inputfile = arg elif opt in ("-o", "--ofile"): outputfile = arg print '输入的文件为:', inputfile print '输出的文件为:', outputfile if __name__ == "__main__": main(sys.argv[1:])
Die Umsetzung des obigen Codes ist die Ausgabe:
$ python test.py -h usage: test.py -i <inputfile> -o <outputfile> $ python test.py -i inputfile -o outputfile 输入的文件为: inputfile 输出的文件为: outputfile