Latest web development tutorials

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