Python-Kommandozeilenargumente

Python 基础语法Python-Grundsyntax

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

#!/usr/bin/python
# -*- 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

#!/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 '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
输出的文件为: outputfile

Python 基础语法Python-Grundsyntax

Andere Erweiterungen