Eine der Qualitäten von Python ist, dass es mit den mitgelieferten Batterien mitgeliefert wird: Es verfügt über eine reichhaltige und anpassungsfähige Standardbibliothek, die es unter anderen Programmierdialekten für die Erstellung von Inhalten für die Direktleitung herausragend macht. In jedem Fall müssen Sie, falls Sie Inhalte für die Bestellzeile komponieren, an dieser Stelle ebenfalls eine anständige Richtungslinienschnittstelle angeben, die Sie mit der Python-Bibliothek argparse erstellen können.

Was ist eine Richtungslinienschnittstelle?

Die Auftragszeilenschnittstelle (auch CLI genannt) ist eine Möglichkeit zur Zusammenarbeit mit einem Direktzeileninhalt. Python wird von einigen unterschiedlichen Bibliotheken begleitet, die es Ihnen ermöglichen, eine Bestellzeilenschnittstelle für Ihre Inhalte zu erstellen. Der Standardweg für die Erstellung einer CLI in Python ist jedoch im Moment die Python-Bibliothek argparse.

Die Python argparse-Bibliothek wurde mit Python 3.2 am zwanzigsten Februar 2011 als ein wichtiger Aspekt der Standardbibliothek entlassen. Sie wurde mit Python Upgrade Proposition 389 vorgestellt und ist derzeit die Standardmethode zur Erstellung einer CLI in Python, sowohl in der 2.7- als auch in der 3.2+-Form.

Dieses neue Modul wurde als Handel für die etablierteren getopt und optparse Module entlassen, da sie in Bezug auf einige wichtige Höhepunkte unzureichend waren.

Die Python argparse-Bibliothek:

$ ls

dcdb_20180201.sg4 mastro35.sg4         Öffnungen.sg4

dcdb_20180201.si4 mastro35.si4         Öffnungen.si4

dcdb_20180201.sn4 mastro35.sn4         Öffnungen.sn4

Erlaubt die Nutzung von Positionskonflikten

Erlaubt die Anpassung der Präfixverbrennungen

Unterstützt variable Parametermengen für eine einsame Wahl

Unterstützt Unterbefehle (Ein Linienparser für grundlegende Ordnungen kann Linienparser in anderer Richtung verwenden, die sich auf bestimmte Konflikte stützen).

Bevor Sie beginnen, müssen Sie sich klar machen, wie die Schnittstelle einer Auftragszeile funktioniert. Öffnen Sie also ein Terminal auf Ihrem PC und führen Sie den Auftrag ls aus, um auf diese Weise den Überblick über die im vorliegenden Index enthaltenen Datensätze zu erhalten:

Wie offensichtlich sein sollte, gibt es viele Dokumente im vorliegenden Katalog, aber die Direktion hat viele Daten über diese Aufzeichnungen nicht wiederhergestellt.

Glücklicherweise müssen Sie nicht nach einem anderen Programm suchen, um einen extravaganteren Überblick über die im Ablaufkatalog enthaltenen Dokumente zu erhalten. Sie müssen auch nicht selbst den ls-Auftrag ändern, da es eine Richtungslinienschnittstelle erhält, d.h. nur eine Menge von Token (genannt Contentions), mit denen Sie das Verhalten dieser Richtung gestalten können.

Versuchen Sie derzeit noch einmal, den Befehl ls auszuführen, jedoch mit Hinzufügung der Auswahl – l an der Richtungslinie wie im darunterliegenden Modell:

$ ls -l

insgesamt 641824

-rw——- 1 dave personal 204558286 5 Mär 2018 dcdb_20180201.sg4

-rw——- 1 dave staff 110588409 5 Mar 2018 dcdb_20180201.si4

-rw——- 1 dave personal 2937516 5 Mär 2018 dcdb_20180201.sn4

-rw——- 1 dave personal 550127 27 Mär 2018 mastro35.sg4

-rw——- 1 dave staff 15974 11 Gen 17:01 mastro35.si4

-rw——- 1 dave personal 3636 27 Mär 2018 mastro35.sn4

-rw——- 1 dave personal 29128 17 Apr 2018 öffnungen.sg4

-rw——- 1 dave personal 276 17 Apr 2018 öffnungen.si4

-rw——- 1 dave personal 86 18 Apr 2018 öffnungen.sn4

Die Ausbeute ist an diesem Punkt ganz anders. Die Ordnung wurde wiederhergestellt, eine Tonne Daten über die Zustimmungen, den Eigentümer, die Sammlung und den Umfang jedes Dokuments sowie die vollständige Registerbelegung der Platte.

Dies geschieht mit der Begründung, dass Sie die Auftragszeilenschnittstelle der ls-Richtung genutzt und die – l-Wahl bestimmt haben, die die lange Anordnung ermöglicht, eine außergewöhnliche Konfiguration, die für jedes einzelne aufgezeichnete Dokument deutlich mehr Daten bringt.

Um sich mit diesem Thema vertraut zu machen, werden Sie eine Tonne über Streitigkeiten, Alternativen und Parameter nachlesen, so dass wir die Formulierung sofort erklären sollten:

Die Auseinandersetzung ist ein einsamer, durch Räume abgegrenzter Teil einer direkten Linie.

Eine Alternative ist eine bestimmte Art der Auseinandersetzung (oder ein Teil einer Auseinandersetzung), die das Verhalten der Auftragslinie verändern kann.

Ein Parameter ist eine bestimmte Art der Auseinandersetzung, die einer einsamen Wahl oder Ordnung zusätzliche Daten liefert.

Denken Sie über die begleitende Richtung nach:

$ ls – l – s – k/var/log

In diesem Modell haben Sie fünf einzigartige Behauptungen:

ls: der Name der Richtung, die Sie ausführen

– l: eine Entscheidung zur Stärkung der beträchtlich heruntergekommenen Position

– s: die Möglichkeit, die zugewiesene Größe jedes Datensatzes auszudrucken

– k: die Wahl der Größe in Kilobyte

/var/log: ein Parameter, der zusätzliche Daten (den Weg zur Neigung) zur Richtung

Beachten Sie, dass Sie, für den unwahrscheinlichen Fall, dass Sie verschiedene Alternativen in einer einsamen Ordnungslinie haben, an diesem Punkt zu einer einsamen Auseinandersetzung wie dieser beitreten können:

$ ls – lsk/var/log

Hier haben Sie nur drei Behauptungen:

ls : der Name des Auftrags, den Sie ausführen

– lsk: die drei verschiedenen Wahlmöglichkeiten, die Sie ermächtigen müssen (eine Mischung aus – l, – s und – k)

/var/log: ein Parameter, der der Ordnung zusätzliche Daten (den Weg zur Neigung) gibt

Wann eine Richtungslinienschnittstelle verwendet werden sollte

Da Sie verstehen, was eine Richtungslinienschnittstelle ist, könnten Sie darüber nachdenken, wann es ein kluger Gedanke ist, eine solche in Ihren Projekten auszuführen. Die allgemeine Richtlinie ist, dass Sie für den Fall, dass Sie eine einfach zu handhabende Methode für den Entwurf Ihres Programms benötigen, an diesem Punkt eine Richtungslinienschnittstelle in Betracht ziehen sollten, und die Standardmethode dafür ist die Verwendung der Python-Bibliothek argparse.

Unabhängig davon, ob Sie ein kompliziertes Auftragszeilenprogramm erstellen, für das ein Arrangement-Datensatz benötigt wird, ist es für den Fall, dass Sie Ihrem Kunden die Möglichkeit geben müssen, anzugeben, welches Designdokument verwendet werden soll, ein kluger Gedanke, diesen Anreiz anzuerkennen, indem Sie eine direkte Schnittstelle mit der Python-Bibliothek argparse herstellen.

Die effektivste Methode zur Verwendung der Python argparse-Bibliothek zur Erstellung einer Richtungslinienschnittstelle

Die Verwendung der Python argparse-Bibliothek hat vier Stufen:

Importieren Sie die Python-Bibliothek argparse

Machen Sie den Parser

Hinzufügen von Ermessens- und Positionskonflikten zum Parser

Ausführen von .parse_args()

Nachdem Sie .parse_args() ausgeführt haben, erhalten Sie ein Namespace-Objekt, das eine einfache Eigenschaft für jede von der Richtungslinie erhaltene Informationskonkurrenz enthält.

Um diese vier Phasen anhand eines Modells im Detail zu sehen, wie wäre es, wenn wir uns vorstellen, dass Sie ein Programm namens myls.py erstellen, das die im vorliegenden Katalog enthaltenen Datensätze herunterbricht. Hier ist eine mögliche Verwendung Ihrer Bestellzeilenschnittstelle ohne Verwendung der Python-Bibliothek argparse:

# myls.py

Import-OS

Importsysteme

wenn len(sys.argv) > 2:

    print(‘Sie haben zu viele Argumente angegeben’)

    sys.exit()

wenn len(sys.argv) < 2:

    print(‘Sie müssen den Pfad angeben, der aufgelistet werden soll’)

    sys.exit()

eingabe_pfad = sys.argv[1]

wenn nicht os.path.isdir(input_path):

    print(‘Der angegebene Pfad existiert nicht’)

    sys.exit()

drucken (‘\n’.join(os.listdir(input_path)))

Dies ist eine mögliche Implementierung der Befehlszeilenschnittstelle für Ihr Programm, die nicht die Python-Bibliothek argparse verwendet, aber wenn Sie versuchen, sie auszuführen, dann werden Sie sehen, dass es funktioniert:

$ python myls.py

Sie müssen den Pfad angeben, der aufgelistet werden soll

$ python myls.py /mnt /proc /dev

Sie haben zu viele Argumente angegeben

$ python myls.py /mnt

dir1

Dir2

Wie Sie sehen können, funktioniert das Skript zwar, aber die Ausgabe ist ganz anders als die, die Sie von einem eingebauten Standardbefehl erwarten würden.

Lassen Sie uns nun sehen, wie die Python-Bibliothek argparse diesen Code verbessern kann:

# myls.py

# Importieren Sie die argparse-Bibliothek

importieren argparse

Import-OS

Importsysteme

# Erstellen Sie den Parser

my_parser = argparse.argumentParser(description=’Den Inhalt eines Ordners auflisten’)

# Argumente hinzufügen

my_parser.add_argument(‘Pfad’,

                       metavar=’Pfad’,

                       Typ=str,

                       help=’der Pfad zur Liste’)

# Ausführen der parse_args()-Methode

args = mein_parser.parse_args()

eingabe_pfad = args.pfad

wenn nicht os.path.isdir(input_path):

    print(‘Der angegebene Pfad existiert nicht’)

    sys.exit()

drucken (‘\n’.join(os.listdir(input_path)))

Der Code hat sich mit der Einführung der Python-Bibliothek argparse stark verändert.