Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung der Methoden zum Abrufen von Befehlszeilenparametern in Python

Zusammenfassung der Methoden zum Abrufen von Befehlszeilenparametern in Python

高洛峰
高洛峰Original
2017-03-08 10:09:052790Durchsuche

Einführung in die Python-Methode zum Abrufen von Befehlszeilenparametern: getopt-Modul und argparse-Modul.

Python-Version: 2.7

1. getopt-Modul

verwendet hauptsächlich die Funktionen im Modul:

options, args = getopt.getopt(args, shortopts, longopts=[])

Parameter args: normalerweise sys.argv[1:]. Filtern Sie sys.argv[0] heraus. Dabei handelt es sich um den Namen des ausgeführten Skripts, der nicht als Befehlszeilenparameter gezählt wird.

Parameter shortopts: Analysezeichenfolge im Kurzformat. Beispiel: „hp:i:“, nach h steht kein Doppelpunkt, was bedeutet, dass es keine Parameter gibt; nach p und i stehen Doppelpunkte, was bedeutet, dass es Parameter gibt.

Parameter longopts: Analyse-String-Liste im Langformat. Beispiel: ["help", "ip=", "port="], nach help gibt es kein Gleichheitszeichen, was bedeutet, dass es keine Parameter gibt; nach ip und port steht ein Doppelpunkt, was bedeutet, dass es Parameter gibt.

Die Rückgabewertoptionen sind eine Liste mit Tupeln als Elementen. Die Form jedes Tupels ist: (Optionszeichenfolge, zusätzliche Parameter), wie zum Beispiel: ('-i', '192.168.0.1')

Der Rückgabewert args ist eine Liste, deren Elemente die Parameter sind, die weder „-“ noch „--“ enthalten.

Führen Sie den folgenden Befehl in der Befehlszeile aus:

python test_getopt.py -i 192.168.0.1 -p 80 123 a

oder

python test_getopt.py -ip=192.168.0.1 --port=80 123 a

test_getopt.py-Code lautet wie folgt:

#encoding=utf-8

import getopt
import sys

def main(argv):
    try:
        options, args = getopt.getopt(argv, "hp:i:", ["help", "ip=", "port="])
    except getopt.GetoptError:
        sys.exit()

    for option, value in options:
        if option in ("-h", "--help"):
            print("help")
        if option in ("-i", "--ip"):
            print("ip is: {0}".format(value))
        if option in ("-p", "--port"):
            print("port is: {0}".format(value))

    print("error args: {0}".format(args))

if __name__ == '__main__':
    main(sys.argv[1:])

Die laufenden Ergebnisse sind wie folgt :

Zusammenfassung der Methoden zum Abrufen von Befehlszeilenparametern in Python

2. argparse-Modul

Ein Standardmodul zum Parsen von Befehlszeilenoptionen und -parametern.

Verwendungsschritte:

1: argparse importieren #Modul importieren

2: parser = argparse.ArgumentParser() #Parsing-Objekt erstellen

3: Parser .add_argument() #Fügen Sie die zum Objekt verwendeten Befehlszeilenoptionen und -parameter hinzu

4: parser.parser_args() #Parsen Sie die Befehlszeile

Nächste Details Wir stellen vor Methoden ArgumentParser und add_argument:

ArgumentParser(prog=None, using=None, description=None, epilog=None, parent=[], formatter_class=argparser.HelpFormatter, prefix_chars='-', fromfile_prefix_chars= None, argument_default=Keine,conflict_handler='error', add_help=True)

Die Parameter haben Standardwerte, wenn das Programm aufgrund falscher Parameter ausgeführt wird oder wenn die Methode parser.print_help() aufgerufen wird . Im Allgemeinen muss nur die Parameterbeschreibung übergeben werden.

add_argument(Name oder Flags... [, Aktion] [, Nargs] [, Konstante] [, Standard] [, Typ] [, Auswahlmöglichkeiten] [, erforderlich] [, Hilfe] [, Metavar] [, Ziel])

Die allgemeinen Parameter werden wie folgt erklärt:

Name oder Flags: Name oder Option des Befehlszeilenparameters, z. B. -p, --port

Aktion:

Store: Der Standardaktionsmodus, speichert den Wert in der angegebenen Variablen

Store_const: Der gespeicherte Wert wird im const-Teil des Parameters angegeben, der häufig zur Implementierung von nicht-booleschen Werten verwendet wird Befehlszeilenflags

store_true/store_false: Boolescher Schalter. Der Standardwert von store_true ist False. Wenn der boolesche Schalter in der Befehlszeile eingegeben wird, ist der Wert True. store_false ist das Gegenteil

Anhängen: Speichert den Wert in der Liste, dieser Parameter kann wiederverwendet werden

Append_const: Speichert den Wert in der Liste, der gespeicherte Wert wird im const-Teil von angegeben Parameter

Anzahl: Statistik Die Anzahl der Eingabeparameterabkürzungen

Version: Versionsinformationen ausgeben und dann das Skript beenden

nargs: Die Anzahl der Befehlszeilenparameter im Allgemeinen dargestellt durch Platzhalter: ? bedeutet, dass nur einer verwendet wird, * bedeutet 0 bis mehr, + bedeutet 1 bis mehr

Standard: Standardwert

Typ: Parametertyp, der Standardwert ist String-Typ, er kann auch Float sein, Typen wie int und boolean

Auswahlmöglichkeiten: Bereich der Eingabewerte

erforderlich: Standard ist False. Wenn True, bedeutet dies, dass der Parameter eingegeben werden muss

Hilfe : Hilfeaufforderung zur Verwendung von Information

Ziel: Der entsprechende Variablenname des Parameters im Programm, z. B.: add_argument("-a", dest="code_name"), verwenden Sie parser.code_name im Skript, um Greifen Sie auf den Wert der Befehlszeilenoption zu

Der Beispielskriptcode test_argparse.py lautet wie folgt:

 1 #encoding=utf-8 2 import argparse 3  4 def main(args): 5     print("--address {0}".format(args.code_address))    #args.address会报错,因为指定了dest的值 6     print("--flag {0}".format(args.flag))   #如果命令行中该参数输入的值不在choices列表中,则报错 7     print("--port {0}".format(args.port))   #prot的类型为int类型,如果命令行中没有输入该选项则报错 8     print("-l {0}".format(args.log))  #如果命令行中输入该参数,则该值为True。因为为短格式"-l"指定了别名"--log",所以程序中用args.log来访问 9 10 if __name__ == '__main__':11     parser = argparse.ArgumentParser(usage="it's usage tip.", description="help info.")12     parser.add_argument("--address", default=80, help="the port number.", dest="code_address")13     parser.add_argument("--flag", choices=['.txt', '.jpg', '.xml', '.png'], default=".txt", help="the file type")14     parser.add_argument("--port", type=int, required=True, help="the port number.")15     parser.add_argument("-l", "--log", default=False, action="store_true", help="active log info.")16 17     args = parser.parse_args()18     main(args)

Führen Sie jeweils die folgenden Befehle aus:

python test_argparse.py

Zusammenfassung der Methoden zum Abrufen von Befehlszeilenparametern in Python

python test_argparse.py --port 80

Zusammenfassung der Methoden zum Abrufen von Befehlszeilenparametern in Python

python test_argparse.py - -port 80 --flag apk

Zusammenfassung der Methoden zum Abrufen von Befehlszeilenparametern in Python

python test_argparse.py --port 80 -l

Zusammenfassung der Methoden zum Abrufen von Befehlszeilenparametern in Python

Weitere Python-Methoden zum Abrufen von Befehlszeilenparametern und verwandte Artikel finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn