Heim > Backend-Entwicklung > Python-Tutorial > Detaillierte Einführung in das Python-Befehlszeilen-Parsing-Tool Argparse

Detaillierte Einführung in das Python-Befehlszeilen-Parsing-Tool Argparse

高洛峰
Freigeben: 2017-03-04 16:17:20
Original
1782 Leute haben es durchsucht

Vor kurzem studiere ich Pathons Befehlszeilen-Parsing-Tool argparse, ein empfohlenes Tool in der Python-Standardbibliothek zum Schreiben von Befehlszeilenprogrammen.

Früher habe ich UI-Programme gemacht, aber heute habe ich das Befehlszeilenprogramm ausprobiert. Es fühlt sich sehr gut an, dass ich nicht viel Zeit damit verbringen muss, Schnittstellenprobleme zu studieren, was besonders umständlich ist .

Jetzt wird Python zur Implementierung der Befehlszeile verwendet. Das Core-Computing-Modul kann selbst als Erweiterungsbibliothek in C geschrieben werden, und der Effekt ist recht gut.

Ich habe argparse gelernt, einen Artikel in der offiziellen Dokumentation gefunden und ihn kurz übersetzt.

http://docs.python.org/2/howto/argparse.html#id1

Argparse-Tutorial
Dieses Tutorial stellt kurz die vom Zeilenparameter der Python-Standardbibliothek empfohlenen Befehle vor Parsing-Modul – die Verwendung von Argparse.

1. Grundkonzepte

In diesem Tutorial verwenden wir einen allgemeinen ls-Befehl, um die Funktion von argparse zu demonstrieren.

$ ls
cpython devguide prog.py pypy rm-unused-function.patch
$ ls pypy
ctypes_configure demo dotviewer include lib_pypy lib-python ...
$ ls -l
total 20
drwxr-xr-x 19 wena wena 4096 Feb 18 18:51 cpython
drwxr-xr-x 4 wena wena 4096 Feb 8 12:04 devguide
-rwxr-xr-x 1 wena wena 535 Feb 19 00:05 prog.py
drwxr-xr-x 14 wena wena 4096 Feb 7 00:59 pypy
-rw-r--r-- 1 wena wena 741 Feb 18 01:01 rm-unused-function.patch
$ ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
Nach dem Login kopieren

Aus den oben genannten vier Befehlen können wir die folgenden Grundkonzepte verstehen:

1), ls-Befehl in Es kann auch Ohne Parameter ausgeführt werden, werden standardmäßig alle Inhalte im aktuellen Verzeichnis gedruckt.
2) Wenn wir möchten, dass mehr Inhalte angezeigt werden, müssen wir ihm mehr Parameter geben. In diesem Fall möchten wir ein anderes Verzeichnis anzeigen, pypy. Wir haben das allgemeine Positionsargument angegeben, das so genannt wird, weil das Programm anhand der Position des Arguments in der Befehlszeile entscheiden muss, was zu tun ist. Dieses Konzept ähnelt eher dem Befehl cp. Seine Verwendung ist cp src dest. src stellt die Datei dar, die Sie kopieren möchten, und dest gibt an, wohin Sie die Datei kopieren möchten.
3) Jetzt möchte ich das Verhalten des Programms ändern. In unserem Beispiel möchte ich die Westward-Informationen der Datei anzeigen und nicht nur den Dateinamen. Der Parameter -l ist das optionale Argument, das wir kennen (optinales Argument)
4), und der letzte Satz dient der Anzeige der Hilfe Dokument Ein Ausschnitt, mit dem Sie lernen können, wie Sie einen Befehl verwenden, den Sie noch nie zuvor verwendet haben.

2. Grundverständnis

Wir beginnen mit einem Grundprogramm (es macht nichts)

import argparse
parser = argparse.ArgumentParser()
parser.parse_args()
Nach dem Login kopieren

Ausführungsergebnisse:

$ python prog.py
$ python prog.py --help
usage: prog.py [-h]

optional arguments:
 -h, --help show this help message and exit
$ python prog.py --verbose
usage: prog.py [-h]
prog.py: error: unrecognized arguments: --verbose
$ python prog.py foo
usage: prog.py [-h]
prog.py: error: unrecognized arguments: foo
Nach dem Login kopieren

Ergebnisanalyse:

1) Wenn Sie dieses Programm ohne Angabe von Parametern ausführen, werden keine Ergebnisse angezeigt erhalten werden.
2) Die zweite Benennung zeigt die Vorteile der Verwendung von argparse. Sie haben nichts getan, außer eine gute Hilfenachricht zu erhalten.
3) Wir können eine gute Hilfemeldung erhalten, ohne den Parameter --help manuell festzulegen. Wenn jedoch andere Parameter (z. B. foo) angegeben werden, wird ein Fehler generiert.

3. Positionsparameter

Geben Sie zunächst ein Beispiel:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("echo")
args = parser.parse_args()
print args.echo
Nach dem Login kopieren

Laufergebnis:

$ python prog.py
usage: prog.py [-h] echo
prog.py: error: the following arguments are required: echo
$ python prog.py --help
usage: prog.py [-h] echo

positional arguments:
 echo

optional arguments:
 -h, --help show this help message and exit
$ python prog.py foo
foo
Nach dem Login kopieren

Ergebnisanalyse:

Dieses Mal haben wir eine add_argument()-Methode hinzugefügt, um die Befehlszeile für den Programmparameter akzeptabel festzulegen.
Um das Programm auszuführen, müssen Sie nun einen Parameter festlegen. Die
parse_args()-Methode gibt tatsächlich einige Daten aus unseren Befehlszeilenargumenten zurück, im obigen Beispiel ist es echo
Dieser „magische“ Prozess wird von argparse automatisch abgeschlossen.
Obwohl die automatisch generierten Hilfeinformationen schön angezeigt werden, können wir anhand des Echo-Parameters immer noch nicht wissen, was sie tun. Deshalb haben wir ein paar Dinge hinzugefügt, um es nützlicher zu machen.

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("echo", help="echo the string you use here")
args = parser.parse_args()
print args.echo
Nach dem Login kopieren

Laufergebnisse:

$ python prog.py -h
usage: prog.py [-h] echo

positional arguments:
 echo    echo the string you use here

optional arguments:
 -h, --help show this help message and exit
Nach dem Login kopieren

Auf dieser Grundlage Let's etwas mehr ändern: (Quadrat des Eingabeparameters Quadrat berechnen)

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number")
args = parser.parse_args()
print args.square**2
Nach dem Login kopieren

Das Folgende ist das laufende Ergebnis:

$ python prog.py 4
Traceback (most recent call last):
 File "prog.py", line 5, in <module>
  print args.square**2
TypeError: unsupported operand type(s) for ** or pow(): &#39;str&#39; and &#39;int&#39;
Nach dem Login kopieren

Dieses Programm wird nicht korrekt ausgeführt, da argparse die Eingabe als Zeichenfolge behandelt, daher müssen wir seinen Typ festlegen: (type=int)

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number",
          type=int)
args = parser.parse_args()
print args.square**2
Nach dem Login kopieren

Das Folgende sind die Ergebnisse:

$ python prog.py 4
16
$ python prog.py four
usage: prog.py [-h] square
prog.py: error: argument square: invalid int value: &#39;four&#39;
Nach dem Login kopieren

Jetzt läuft dieses Programm reibungslos und kann damit umgehen Einige Tippfehler.

Das Obige ist ein einfaches Tutorial zur Verwendung des Python-Befehlszeilen-Parsing-Tools Argparse. Ich hoffe, es wird für alle hilfreich sein.

Eine ausführlichere Einführung in das Python-Befehlszeilen-Parsing-Tool Argparse und verwandte Artikel finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage