Python-Kommandozeilenargumente
Python bietetgetoptein Modul zum Abrufen von Kommandozeilenargumenten.
$ python test.py arg1 arg2 arg3
In Python können Sie auchsysvonsys.argvverwenden, um Kommandozeilenargumente zu erhalten:
sys.argv ist die Liste der Kommandozeilenargumente.
len(sys.argv) ist die Anzahl der Kommandozeilenargumente.
Hinweis:sys.argv
Beispiel
Der Code der Datei test.py lautet wie folgt:
Beispiel
# -*- coding: UTF-8 -*-
import sys
print 'Anzahl der Argumente:', len(sys.argv), ' Argumente.'
print 'Argumentliste:', str(sys.argv)
Wenn Sie den obigen Code ausführen, lautet das Ausgabeergebnis:
$ python test.py arg1 arg2 arg3 参数个数为: 4 个参数。 参数列表: ['test.py', 'arg1', 'arg2', 'arg3']
getopt-Modul
Das getopt-Modul ist ein Modul speziell für die Verarbeitung von Kommandozeilenargumenten, das verwendet wird, um Kommandozeilenoptionen und -argumente, d. h. sys.argv, zu erhalten. Kommandozeilenoptionen machen die Argumente des Programms flexibler. Unterstützt den Kurzoptionsmodus-und den Langoptionsmodus--。
Dieses Modul bietet zwei Methoden und einen Ausnahmehandler zum Parsen von Kommandozeilenargumenten.
getopt.getopt-Methode
Die getopt.getopt-Methode wird verwendet, um die Liste der Befehlszeilenargumente zu analysieren; das Syntaxformat lautet wie folgt:
getopt.getopt(args, options[, long_options])
Beschreibung der Methodenparameter:
args: Die Liste der zu analysierenden Befehlszeilenargumente.
options: Wird als Zeichenfolgenformat definiert,optionsder Doppelpunkt danach:gibt an, dass, wenn diese Option gesetzt ist, ein zusätzliches Argument vorhanden sein muss; andernfalls wird kein Argument angehängt.
long_options: Im Listenformat definiert,long_optionsdas Gleichheitszeichen danach=gibt an, dass die Option ein zusätzliches Argument haben muss; ohne Gleichheitszeichen bedeutet es, dass die Option kein zusätzliches Argument entgegennimmt.
Der Rückgabewert dieser Methode besteht aus zwei Elementen: Das erste ist(option, value)eine Liste von Tupeln. Das zweite ist die Argumentliste, die diejenigen ohne-oder--die Argumente enthält.
Die andere Methode ist getopt.gnu_getopt, die hier nicht im Detail vorgestellt wird.
Ausnahme getopt.GetoptError
Diese Ausnahme wird ausgelöst, wenn die Argumentliste nicht gefunden wird oder wenn das erforderliche Argument einer Option leer ist.
Das Argument der Ausnahme ist eine Zeichenfolge, die die Ursache des Fehlers angibt. Das Attributmsgundoptist die Fehlermeldung für die zugehörige Option.
Beispiel
Angenommen, wir erstellen ein solches Skript, dann können wir zwei Dateinamen über die Befehlszeile an die Skriptdatei übergeben, und gleichzeitig verwenden wir eine andere Option, um die Skriptverwendung anzuzeigen. Die Skriptverwendung ist wie folgt:
usage: test.py -i <inputfile> -o <outputfile>
Der Code der Datei test.py lautet wie folgt:
Beispiel
# -*- 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 'Die Eingabedatei ist:', inputfile
print 'Die Ausgabedatei ist:', outputfile
if __name__ == "__main__":
main(sys.argv[1:])
Wenn Sie den obigen Code ausführen, lautet das Ausgabeergebnis:
$ python test.py -h usage: test.py -i <inputfile> -o <outputfile> $ python test.py -i inputfile -o outputfile 输入的文件为: inputfile 输出的文件为: outputfileAndere Erweiterungen
Python-Grundsyntax