So erstellen Sie Ihre eigenen Befehlszeilenprogramme in Python With Click

So erstellen Sie Ihre eigenen Befehlszeilenprogramme in Python With Click / Programmierung

Click ist ein Python-Paket zum Schreiben von Befehlszeilenschnittstellen. Es erstellt eine schöne Dokumentation für Sie und ermöglicht das Erstellen von Befehlszeilenschnittstellen in nur einer Codezeile. Kurz gesagt: Es ist großartig und kann helfen, Ihre Programme auf die nächste Stufe zu bringen.

So können Sie Ihre Python-Projekte mit Leben füllen.

Befehlszeilenprogramme ohne Klick schreiben

Befehlszeilenprogramme können ohne die Verwendung von Click geschrieben werden. Dies erfordert jedoch mehr Aufwand und viel mehr Code. Sie müssen Befehlszeilenargumente analysieren, eine Validierung durchführen, Logik entwickeln, um verschiedene Argumente zu verarbeiten, und ein benutzerdefiniertes Hilfemenü erstellen. Möchten Sie eine neue Option hinzufügen? Sie ändern dann Ihre Hilfefunktion.

Es ist nichts Falsches daran, eigenen Code zu schreiben. Dies ist eine gute Möglichkeit, Python zu lernen, aber mit Click können Sie dem folgen “Wiederholen Sie sich nicht” (TROCKEN) Prinzipien. Ohne Klick schreiben Sie Code, der anfällig ist und bei jeder Änderung viel Wartung erfordert.

Hier ist eine einfache Befehlszeilenschnittstelle, die ohne Click codiert ist:

import sys import random def do_work (): "" "Funktion zur Behandlung der Befehlszeilenverwendung" "" args = sys.argv args = args [1:] # Das erste Element von args ist der Dateiname, wenn len (args) == 0 else: für a in args: if a == '--help': print ('Basic Command Line Program') print ('Optionen:') print (' --help -> Dieses grundlegende Hilfemenü anzeigen. ') print (' --monty -> ein Zitat von Monty Python anzeigen ') print (' --veg -> ein zufälliges Gemüse anzeigen ') elif a ==' - monty ': print (' Was ist das dann? "Romanes eunt domus"? Die Leute, die Romanes genannt werden, gehen sie, das Haus? ') elif a ==' --veg ': print (random.choice ([' Karotte ',' Potato ',' Turnip '])) else: print (' Nicht erkanntes Argument. ') Wenn __name__ ==' __main__ ': do_work ()

Diese 27 Zeilen von Python funktionieren gut, sind aber sehr zerbrechlich. Jede Änderung, die Sie an Ihrem Programm vornehmen, erfordert eine Vielzahl weiterer unterstützender Codes, um diese zu ändern. Wenn Sie einen Argumentnamen ändern, müssen Sie die Hilfeinformationen aktualisieren. Dieser Code kann leicht außer Kontrolle geraten.

Hier ist die gleiche Logik mit Click:

import click zufällig @ click.command () @ click.option ('- monty', default = False, help = "Monty Python-Zitat anzeigen") @ click.option ('- veg', default = False , help = "Ein zufälliges Gemüse anzeigen.") def do_work (monty, veg): "" "Das grundlegende Klick-Beispiel folgt Ihren Befehlen" "" "wenn monty: print (" Was ist das denn? ") Romanes eunt domus "Leute, die Romanes heißen, sie gehen, das Haus?") Wenn veg: print (random.choice (['Carrot', 'Potato', 'Rübe'])) wenn __name__ == '__main__': do_work ()

Dieses Click-Beispiel implementiert dieselbe Logik in 16 Codezeilen. Die Argumente werden für Sie analysiert und der Hilfebildschirm wird generiert:

Dieser grundlegende Vergleich zeigt, wie viel Zeit und Aufwand Sie durch die Verwendung von Programmen wie Click sparen können. Während die Befehlszeilenschnittstelle für den Endbenutzer möglicherweise gleich aussieht, ist der zugrunde liegende Code einfacher und Sie sparen viel Zeit beim Kodieren. Alle Änderungen oder Aktualisierungen, die Sie in der Zukunft schreiben, werden auch zu erheblichen Entwicklungszeiten führen.

Erste Schritte mit Click for Python

Bevor Sie Click verwenden, möchten Sie möglicherweise eine virtuelle Umgebung konfigurieren. Informationen zur Verwendung der virtuellen Python-Umgebung Informationen zur Verwendung der virtuellen Python-Umgebung Ob Sie ein erfahrener Python-Entwickler sind oder gerade erst mit dem Einrichten einer virtuellen Umgebung vertraut sind ist für jedes Python-Projekt unerlässlich. Weiterlesen . Dadurch wird verhindert, dass Ihre Python-Pakete mit Ihrem System Python oder anderen Projekten, an denen Sie arbeiten, in Konflikt stehen. Sie können Python auch in Ihrem Browser ausprobieren. Testen Sie Python in Ihrem Browser mit diesen kostenlosen interaktiven Online-Shells. Testen Sie Python in Ihrem Browser mit diesen kostenlosen Online-interaktiven Online-Shells. Ob Sie nun diese Python-Beispiele durchgehen oder die Grundlagen von Arrays und Listen durchsehen, können Sie Testen Sie den Code direkt in Ihrem Browser. Hier sind die besten Online-Python-Interpreter, die wir gefunden haben. Lesen Sie mehr, wenn Sie mit Python und Click herumspielen möchten.

Vergewissern Sie sich schließlich, dass Sie Python Version 3 ausführen. Sie können Click mit Python Version 2 verwenden. Diese Beispiele sind jedoch in Python 3. Erfahren Sie mehr über die Unterschiede zwischen Python 2 und Python 3.

Sobald Sie fertig sind, installieren Sie Click in der Befehlszeile mit PIP (wie PIP für Python installiert wird):

pip installieren klick

Schreiben Ihres First Click-Programms

Beginnen Sie in einem Texteditor mit dem Import von Click:

Import-Klick

Erstellen Sie nach dem Importieren eine Methode und ein Main Einstiegspunkt. In unserem Python-OOP-Handbuch werden diese ausführlicher behandelt. Sie bieten jedoch einen Ort zum Speichern Ihres Codes und eine Möglichkeit für Python, mit der Ausführung zu beginnen:

import click zufall def veg (): "" "Die Basismethode gibt einen zufälligen Gemüsedruck zurück (random.choice (['Carrot', 'Potato', 'Rüben', 'Parsnip'])), wenn __name__ = = '__main__': veg ()

Dieses sehr einfache Skript gibt ein zufälliges Gemüse aus. Ihr Code kann anders aussehen, aber dieses einfache Beispiel lässt sich ideal mit Click kombinieren.

Speichern Sie dies als click_example.py, und führen Sie es dann in der Befehlszeile aus (nachdem Sie zu seiner Position navigiert wurden):

python click_example.py

Sie sollten einen zufälligen Pflanzennamen sehen. Verbessern wir die Dinge durch Hinzufügen von Klick. Ändern Sie Ihren Code, um die Click-Dekorateure einzuschließen, und a zum Schleife:

@ click.command () @ click.option ('- total', default = 3, help = "Anzahl der Gemüse, die ausgegeben werden sollen.") def veg (total): "" "Die grundlegende Methode gibt ein zufälliges Gemüse zurück." " "für Nummer im Bereich (gesamt): print (random.choice (['Karotte', 'Kartoffel', 'Rübe', 'Pastinak'])) wenn __name__ == '__main__': veg ()

Beim Laufen wird dreimal ein zufälliges Gemüse angezeigt.

Lassen Sie uns diese Änderungen abbauen. Das @ click.command () Dekorateur konfiguriert Klicken Sie hier, um mit der Funktion zu arbeiten, die dem Dekorateur unmittelbar folgt. In diesem Fall ist dies das Gemüse () Funktion. Sie benötigen dies für jede Methode, die Sie mit Click verwenden möchten.

Das @ click.option decorator konfiguriert das Klicken, um Parameter von der Befehlszeile zu akzeptieren, die an Ihre Methode übergeben werden. Hier werden drei Argumente verwendet:

  1. -gesamt: Dies ist der Befehlszeilenname für die gesamt Streit.
  2. Standard: Wenn Sie bei der Verwendung Ihres Skripts nicht das gesamte Argument angeben, verwendet Click den Wert von default.
  3. Hilfe: Ein kurzer Satz, der erklärt, wie Sie Ihr Programm verwenden.

Lassen Sie uns Click in Aktion sehen. Führen Sie Ihr Skript über die Befehlszeile aus, übergeben Sie es jedoch gesamt Argument wie folgt:

python click_example.py --total 10

Indem man es einstellt -insgesamt 10 Von der Befehlszeile aus werden zehn zufällige Gemüsesorten gedruckt.

Wenn Sie in der -Hilfe Wenn Sie diese Option aufrufen, wird eine nette Hilfeseite mit den Optionen angezeigt, die Sie verwenden können:

python click_example.py --help

Weitere Befehle hinzufügen

Es ist möglich, viele Click-Dekoratoren für dieselbe Funktion zu verwenden. Fügen Sie eine weitere Klickoption zum hinzu veg Funktion:

@ click.option ('- Soße', default = False, help = "Anhängen" mit Soße "an das Gemüse.")

Vergessen Sie nicht, dies in die Methode einzufügen:

def veg (total, soße):

Wenn Sie jetzt Ihre Datei ausführen, können Sie die Datei übergeben Soße Flagge:

python click_example.py --gravy y

Der Hilfebildschirm hat sich auch geändert:

Hier ist der gesamte Code (mit ein paar kleinen Überarbeitungen für die Ordentlichkeit):

import click zufällig @ click.command () @ click.option ('- Gravy', default = False, help = "Anhängen" mit Gravy "an das Gemüse.") @ click.option ('- total', default = 3, help = "Anzahl der Gemüse, die ausgegeben werden sollen.") def veg (total, sauce): "" "Die Basismethode gibt ein zufälliges Gemüse" "" als Zahl im Bereich (total) zurück: choice = random.choice ( ['Möhre', 'Kartoffel', 'Rübe', 'Pastinake']) wenn Bratensoße: print (f 'Wahl mit Bratensoße'), sonst: print (Auswahl), wenn __name__ == '__main__': veg ()

Noch mehr Klickoptionen

Sobald Sie die Grundlagen kennen, können Sie mit den komplexeren Click-Optionen beginnen. In diesem Beispiel erfahren Sie, wie Sie mehrere Werte an ein einzelnes Argument übergeben, das Click in ein Tupel konvertiert. Weitere Informationen zu Tupeln finden Sie in unserem Leitfaden zum Python-Wörterbuch.

Erstellen Sie eine neue Datei mit dem Namen click_example_2.py. Hier ist der Startercode, den Sie benötigen:

import click zufällig @ click.command () def add (): "" "Die Basismethode fügt zwei Zahlen zusammen." "" "" übergeben, wenn __name__ == '__main__': add ()

Hier gibt es nichts Neues. Im vorherigen Abschnitt wird dieser Code ausführlich erläutert. Füge hinzu ein @ click.option namens Zahlen:

@ click.option ('- numbers', nargs = 2, type = int, help = "Addiere zwei Zahlen.")

Der einzige neue Code hier ist der ngs = 2, und das type = int Optionen. Dies weist Click an, um zwei Werte für die zu akzeptieren Zahlen Option, und beide müssen vom Typ ganze Zahlen sein. Sie können dies in eine beliebige Anzahl oder einen beliebigen (gültigen) Datentyp ändern.

Ändern Sie schließlich die hinzufügen Methode, um das zu akzeptieren Zahlen argumentieren und mit ihnen etwas bearbeiten:

def add (Zahlen): "" "Die Basismethode fügt zwei Zahlen zusammen." "" Ergebnis = Zahlen [0] + Zahlen [1] print (f 'Zahlen [0] + Zahlen [1] =  Ergebnis')

Jeder Wert, den Sie übergeben, ist über die Zahlen Objekt. So verwenden Sie es in der Befehlszeile:

python click_example_2.py --numbers 1 2

Klicken Sie auf Ist die Lösung für Python-Dienstprogramme

Wie Sie gesehen haben, ist Click einfach zu bedienen, aber sehr mächtig. Während diese Beispiele nur die Grundlagen von Click abdecken, gibt es viele weitere Funktionen, die Sie jetzt kennenlernen können, wenn Sie sich mit den Grundlagen auskennen.

Wenn Sie nach einigen Python-Projekten suchen, mit denen Sie Ihre neuen Fähigkeiten üben können, sollten Sie lernen, wie man ein Arduino mit Python steuert. Wie man ein Arduino mit Python programmiert und steuert. Wie man ein Arduino mit Python programmiert und steuert. Leider ist es unmöglich Um ein Arduino direkt in Python zu programmieren, können Sie es mit einem Python-Programm über USB steuern. Hier ist wie. Lesen Sie mehr oder lesen Sie mehr über das Lesen und Schreiben von Google Sheets mit Python. Lesen und Schreiben von Google Sheets mit Python. Lesen und Schreiben von Google Sheets mit Python. Python mag seltsam und ungewöhnlich erscheinen, ist jedoch einfach zu erlernen und zu verwenden. In diesem Artikel werde ich Ihnen zeigen, wie Sie Google Sheets mit Python lesen und schreiben. Weiterlesen ? Jedes dieser Projekte wäre perfekt für die Konvertierung nach Click!

Erfahren Sie mehr über: Codierungs-Tutorials, Python.