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

Zusammenfassung der Methoden zum Abrufen von Befehlszeilenparametern in Python

Mar 08, 2017 am 10:09 AM

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:])
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!


Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie löste ich das Problem der Berechtigungen beim Betrachten der Python -Version in Linux Terminal? Wie löste ich das Problem der Berechtigungen beim Betrachten der Python -Version in Linux Terminal? Apr 01, 2025 pm 05:09 PM

Lösung für Erlaubnisprobleme beim Betrachten der Python -Version in Linux Terminal Wenn Sie versuchen, die Python -Version in Linux Terminal anzuzeigen, geben Sie Python ein ...

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer-Anfänger-Programmierbasis in Projekt- und problemorientierten Methoden? Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer-Anfänger-Programmierbasis in Projekt- und problemorientierten Methoden? Apr 02, 2025 am 07:18 AM

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Wie kann ich die gesamte Spalte eines Datenrahmens effizient in einen anderen Datenrahmen mit verschiedenen Strukturen in Python kopieren? Wie kann ich die gesamte Spalte eines Datenrahmens effizient in einen anderen Datenrahmen mit verschiedenen Strukturen in Python kopieren? Apr 01, 2025 pm 11:15 PM

Bei der Verwendung von Pythons Pandas -Bibliothek ist das Kopieren von ganzen Spalten zwischen zwei Datenrahmen mit unterschiedlichen Strukturen ein häufiges Problem. Angenommen, wir haben zwei Daten ...

Wie kann man vom Browser vermeiden, wenn man überall Fiddler für das Lesen des Menschen in der Mitte verwendet? Wie kann man vom Browser vermeiden, wenn man überall Fiddler für das Lesen des Menschen in der Mitte verwendet? Apr 02, 2025 am 07:15 AM

Wie kann man nicht erkannt werden, wenn Sie Fiddlereverywhere für Man-in-the-Middle-Lesungen verwenden, wenn Sie FiddLereverywhere verwenden ...

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen ohne Serving_forver () an? Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen ohne Serving_forver () an? Apr 01, 2025 pm 10:51 PM

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen an? Uvicorn ist ein leichter Webserver, der auf ASGI basiert. Eine seiner Kernfunktionen ist es, auf HTTP -Anfragen zu hören und weiterzumachen ...

Wie erstelle ich dynamisch ein Objekt über eine Zeichenfolge und rufe seine Methoden in Python auf? Wie erstelle ich dynamisch ein Objekt über eine Zeichenfolge und rufe seine Methoden in Python auf? Apr 01, 2025 pm 11:18 PM

Wie erstellt in Python ein Objekt dynamisch über eine Zeichenfolge und ruft seine Methoden auf? Dies ist eine häufige Programmieranforderung, insbesondere wenn sie konfiguriert oder ausgeführt werden muss ...

Wie löste ich Berechtigungsprobleme bei der Verwendung von Python -Verssionsbefehl im Linux Terminal? Wie löste ich Berechtigungsprobleme bei der Verwendung von Python -Verssionsbefehl im Linux Terminal? Apr 02, 2025 am 06:36 AM

Verwenden Sie Python im Linux -Terminal ...

See all articles