Heim >Backend-Entwicklung >Python-Tutorial >Detaillierte Einführung in die Verwendung von docopt, dem Analysetool für Befehlszeilenparameter in Python
docopt ist ein Tool zum Parsen von Befehlszeilenparametern. Wenn Sie Parameter an ein Python-Programm anhängen möchten, müssen Sie sich darüber keine Gedanken mehr machen. Der folgende Artikel stellt hauptsächlich die relevanten Informationen zu docopt vor, dem Befehlszeilenparameter-Parsing-Tool in Python. Freunde, die es benötigen, können einen Blick darauf werfen.
Vorwort
docopt ist eine Open-Source-Bibliothek. Es wurde ausführlich in der README-Datei vorgestellt und enthält auch viele Beispiele zum Lernen. Dieser Artikel übersetzt auch den Inhalt der README-Datei...
Das größte Merkmal von docopt ist, dass Sie es nicht haben Sie müssen sich keine Gedanken darüber machen, wie die Befehlszeilenparameter analysiert werden, aber wenn Sie das gewünschte Format gemäß bestimmten Regeln schreiben, ist die Analyse abgeschlossen.
docopt-Installation
docopt hat viele Versionen, von denen jede verschiedene Sprachen unterstützt, docopt unterstützt Java-Skripte. und docopts unterstützt Shell-Skripte (die folgenden Beispiele verwenden hauptsächlich docopts als Beispiel). Weitere Informationen finden Sie in den docopt-Anweisungen von Github als Beispiel für die Installation. Bevor Sie docopts installieren, müssen Sie zuerst docopt installieren.
Methode eins Die einfachere Methode ist die direkte Installation mit pip,
Einige Macs unterstützen den direkten pip-Befehl möglicherweise nicht. Sie müssen zuerst pip installierenMethode 2pip install docopt==0.6.2
Sie können den Quellcode auch auf Github herunterladen (docopt ist ein Open Quellprojekt) und verwenden Sie dann
python setup.py install
Eine einfache Analyse der Implementierung von docopt
Es gibt ein solches Attribut in Python , sein Wert ist eine Zeichenfolge, die im Allgemeinen Hilfeinformationen darstellt, und docopt nutzt dies aus. Ein Attribut ersetzt die Hilfeinformationen durch Anweisungen zum Parsen der Befehlszeilenparameter und analysiert sie dann. Nehmen wir zur Veranschaulichung ein Beispiel von docopt:
__doc__
Im obigen Codeausschnitt eine große Hilfe Informationen sind: Unsere Anweisungen zum Parsen von Befehlszeilenparametern rufen die Funktion docopt am Funktionseintrag zum Parsen auf. Die zurückgegebene Argumentvariable ist eine Lexikonvariable, die aufzeichnet, ob die Option ausgewählt ist, welchen Wert der Parameter hat und wann Das Programm startet über die Befehlszeile. Zur Laufzeit lernen wir die vom Benutzer eingegebenen Optionen und Parameterinformationen anhand der Datensätze der Argumentvariablen.
Das Schreiben von Anweisungen zum Parsen von Befehlszeilenparametern ist daher von entscheidender Bedeutung. Die Informationen zum Parsen von Befehlszeilen bestehen aus zwei Teilen, nämlich dem Format des Verwendungsmusters und dem Format der Optionsbeschreibung.
"""Naval Fate. Usage: naval_fate.py ship new <name>... naval_fate.py ship <name> move <x> <y> [--speed=<kn>] naval_fate.py ship shoot <x> <y> naval_fate.py mine (set|remove) <x> <y> [--moored | --drifting] naval_fate.py (-h | --help) naval_fate.py --version Options: -h --help Show this screen. --version Show version. --speed=<kn> Speed in knots [default: 10]. --moored Moored (anchored) mine. --drifting Drifting mine. """ from docopt import docopt if __name__ == '__main__': arguments = docopt(__doc__, version='Naval Fate 2.0') print(arguments)
Nutzungsmusterformat (Nutzungsmusterformat)
Das Verwendungsmuster beginnt mit der Verwendung: und endet mit einer Leerzeile, wie im gezeigt Das obige Code-Snippet beschreibt hauptsächlich das Format, in dem Benutzer Befehlszeilenparameter hinzufügen, dh das verwendete Format, und die Analyse erfolgt auch gemäß diesem Format. Jedes Verwendungsmuster enthält die folgenden Elemente:
* ParameterParameter sollten großgeschrieben oder in spitzen Klammern eingeschlossen werden a8093152e673feb7aba1828c43532094.
* Optionen
Optionen beginnen mit einem Bindestrich – oder –. Das Format ist -o, wenn nur ein Buchstabe vorhanden ist, und --output, wenn mehr als ein Buchstabe vorhanden ist. Gleichzeitig können Sie auch mehrere Einzelbuchstabenoptionen kombinieren. -ovi entspricht -o, -v, -i. Optionen können auch Parameter haben. Vergessen Sie nicht, den Optionen zu diesem Zeitpunkt eine Beschreibung hinzuzufügen.
stellt optionale Elemente dar, die Elemente in eckigen Klammern sind optional
* ()
stellt die erforderlichen Elemente dar, die Elemente in Klammern Sie müssen eines haben, auch wenn Sie Wählen Sie eine von mehreren aus.
* |
Sich gegenseitig ausschließende Elemente, nur ein Element auf beiden Seiten der vertikalen Linie kann übrig bleiben
* ...
bedeutet, dass das Element wiederholt erscheinen kann und das endgültige Analyseergebnis eine Liste ist
* [Optionen]
Geben Sie bestimmte Optionen an eine bestimmte Aufgabe erledigen.
Optionsbeschreibungsformat
Optionsbeschreibung ist ebenfalls wichtig, insbesondere wenn die Option Parameter hat und sein muss Wenn ihr ein Standardwert zugewiesen wird . Es gibt zwei Formate zum Hinzufügen von Parametern zu Optionen:
Um eine Beschreibung für eine Option hinzuzufügen, verwenden Sie einfach zwei Leerzeichen, um die Option zu trennen und Beschreibung. Das ist es.
Wenn Sie einer Option einen Standardwert hinzufügen, fügen Sie ihn einfach nach der Auswahlbeschreibung hinzu. Das Format ist wie folgt [Standard: 2c3080b3ee81b7077c5a12a35898d9ef]
-o FILE --output-FILE # 不使用逗号,使用 = 符号 -i <file>, --input <file> # 使用逗号,不使用 = 符号
Wenn die Option wiederholt werden kann, ist ihr Wert
eine Liste. Wenn sie nicht wiederholt werden kann, ist ihr Wert eine Zeichenfolge.--coefficient=K The K coefficient [default: 2.95] --output=FILE Output file [default: test.txt] --directory=DIR Some directory [default: ./]Verwenden Sie
[default: ...]
, um die Verwendung des Musterformats und des Optionsbeschreibungsformats zu verstehen, und Sie können es anhand der angegebenen Beispiele besser verstehen. Der nächste Schritt besteht darin, die Eingabeinformationen abzurufen. 在前面提到arguments参数是一个字典类型,包含了用户输入的选项和参数信息,还是上面的代码段例子,假如我们从命令行运行的输入是 那么打印arguments参数如下: 从打印信息可以看到,对于选项,使用布尔型来表示用户是否输入了该选项,对于参数,则使用具体值来表述。 这样一来,程序就可以从arguments变量中得到下一步的操作了。若是用户什么参数都没输入,则打印Usage说明提示输入内容。python3 test.py ship Guardian move 100 150 --speed=15
{'--drifting': False,
'--help': False,
'--moored': False,
'--speed': '15',
'--version': False,
'<name>': ['Guardian'],
'<x>': '100',
'<y>': '150',
'mine': False,
'move': True,
'new': False,
'remove': False,
'set': False,
'ship': True,
'shoot': False}
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Verwendung von docopt, dem Analysetool für Befehlszeilenparameter in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!