Werbung

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

Hier erfahren Sie, wie Sie damit Ihre Python-Projekte beleben können.

Schreiben von Befehlszeilenprogrammen ohne Klick

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

Es ist nichts Falsches daran, eigenen Code zu schreiben, und dies ist eine großartige Möglichkeit, Python zu lernen. Mit Click können Sie jedoch den DRY-Prinzipien (Don't Repeat Yourself) folgen. Ohne Klick schreiben Sie Code, der zerbrechlich ist und bei jeder Änderung viel Wartung erfordert.

instagram viewer

Hier ist eine einfache Befehlszeilenschnittstelle, die ohne Klicken codiert wurde:

sys importieren. 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: print ('Sie haben keine Befehle übergeben!') else: für a in args: if a == '--help': print ('Grundlegendes Befehlszeilenprogramm') print ('Options:') print ('- -help -> zeigen Dieses grundlegende Hilfemenü. ') print (' --monty -> zeige ein Monty Python-Zitat. ') print (' --veg -> zeige ein zufälliges Gemüse ') elif a ==' --monty ': print (' Was ist das, dann? "Romanes eunt domus"? Leute namens Romanes, sie gehen, das Haus? ') Elif a ==' --veg ': print (random.choice ([' Karotte ',' Kartoffel ',' Rübe '])) else: print (' Nicht erkanntes Argument. ') if __name__ ==' __main__ ': do_work ()
Beispiel für eine Python-Befehlszeilenschnittstelle

Diese 27 Python-Zeilen funktionieren gut, sind aber sehr zerbrechlich. Jede Änderung, die Sie an Ihrem Programm vornehmen, erfordert viele andere unterstützende Codes, um sie 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 wie bei Click:

Importklick. importiere random @ click.command () @ click.option ('- monty', Standard = False, help = 'Monty Python-Zitat anzeigen.') @ click.option ('- veg', default = False, help = 'Zeige ein zufälliges Gemüse.') def do_work (monty, veg): Basic Click-Beispiel folgt Ihren Befehlen, wenn monty: print ('Was ist das dann? "Romanes eunt domus"? Leute namens Romanes, sie gehen, das Haus? ') If veg: print (random.choice ([' Karotte ',' Kartoffel ',' 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:

Python Klicken Sie auf den automatisch generierten Hilfebildschirm

Dieser grundlegende Vergleich zeigt, wie viel Zeit und Mühe Sie mit Programmen wie Click sparen können. Während die Befehlszeilenschnittstelle für den Endbenutzer möglicherweise gleich erscheint, ist der zugrunde liegende Code einfacher und Sie sparen viel Zeit beim Codieren. Bei Änderungen oder Aktualisierungen, die Sie in Zukunft schreiben, erhöht sich auch die Entwicklungszeit erheblich.

Erste Schritte mit Click for Python

Bevor Sie Click verwenden, möchten Sie möglicherweise Konfigurieren Sie eine virtuelle Umgebung Erfahren Sie, wie Sie die virtuelle Python-Umgebung verwendenUnabhängig davon, ob Sie ein erfahrener Python-Entwickler sind oder gerade erst anfangen, ist es für jedes Python-Projekt wichtig zu lernen, wie Sie eine virtuelle Umgebung einrichten. Weiterlesen . Dadurch werden Ihre Python-Pakete gestoppt, die mit Ihrem System-Python oder anderen Projekten, an denen Sie möglicherweise arbeiten, in Konflikt stehen. Du könntest auch Versuchen Sie Python in Ihrem Browser Probieren Sie Python in Ihrem Browser mit diesen kostenlosen interaktiven Online-Shells ausUnabhängig davon, ob Sie diese Python-Beispiele durchgehen oder die Grundlagen von Arrays und Listen überprüfen, können Sie den Code direkt in Ihrem Browser testen. Hier sind die besten Online-Python-Interpreter, die wir gefunden haben. Weiterlesen Wenn Sie mit Python und Click herumspielen möchten.

Stellen Sie schließlich sicher, dass Sie Python Version 3 ausführen. Es ist möglich, Click mit Python Version 2 zu verwenden, diese Beispiele sind jedoch in Python 3 enthalten. Erfahren Sie mehr über die Unterschiede zwischen Python 2 und Python 3.

Sobald Sie fertig sind, installieren Sie Click über die Befehlszeile mit PIP (So installieren Sie PIP für Python):

pip install click

Schreiben Ihres First-Click-Programms

Beginnen Sie in einem Texteditor mit dem Importieren. Klicken Sie auf:

Importklick

Erstellen Sie nach dem Import eine Methode und ein Main Einstiegspunkt. Unsere Python OOP-Anleitung behandelt diese ausführlicher, bietet jedoch einen Speicherort für Ihren Code und eine Möglichkeit für Python, ihn auszuführen:

Importklick. import random def veg (): Die grundlegende Methode gibt einen zufälligen Gemüsedruck zurück (random.choice (['Karotte', 'Kartoffel', 'Rübe', 'Pastinake'])), wenn __name__ == '__main__': veg ()

Dieses sehr einfache Skript gibt ein zufälliges Gemüse aus. Ihr Code sieht möglicherweise anders aus, aber dieses einfache Beispiel lässt sich perfekt mit Click kombinieren.

Speichern Sie dies als click_example.pyund führen Sie es dann in der Befehlszeile aus (nachdem Sie zu seinem Speicherort navigiert haben):

python click_example.py

Sie sollten einen zufälligen Gemüsenamen sehen. Lassen Sie uns die Dinge verbessern, indem Sie Click hinzufügen. Ändern Sie Ihren Code, um die Click-Dekoratoren und a einzuschließen zum Schleife:

@ click.command () @ click.option ('- total', Standard = 3, help = 'Anzahl der auszugebenden Gemüsesorten.') def veg (total): Die Basismethode gibt ein zufälliges Gemüse für die Anzahl im Bereich (total) zurück: print (random.choice (['Karotte', 'Kartoffel', 'Rübe', 'Pastinake'])) wenn __name__ == '__main__': veg ()

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

Lassen Sie uns diese Änderungen aufschlüsseln. Das @ click.command () Dekorationskonfigurationen Klicken Sie hier, um mit der Funktion zu arbeiten, die unmittelbar auf den Dekorateur folgt. In diesem Fall ist dies die veg () Funktion. Sie benötigen dies für jede Methode, die Sie mit Click verwenden möchten.

Das @ click.option Decorator konfiguriert Click, um Parameter über die Befehlszeile zu akzeptieren, die an Ihre Methode übergeben werden. Hier werden drei Argumente verwendet:

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

Mal sehen, in Aktion klicken. Führen Sie über die Befehlszeile Ihr Skript aus, übergeben Sie jedoch das gesamt Argument wie dieses:

python click_example.py --total 10

Indem man es einstellt –Gesamt 10 Über die Befehlszeile druckt Ihr Skript zehn zufällige Gemüsesorten.

Wenn Sie in der übergeben -Hilfe Flag, sehen Sie eine schöne Hilfeseite mit den Optionen, die Sie verwenden können:

python click_example.py --help
Python Klicken Sie auf Hilfe

Weitere Befehle hinzufügen

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

@ click.option ('- Soße', Standard = Falsch, Hilfe = 'Mit Soße "an das Gemüse anhängen.')

Vergessen Sie nicht, dies an die Methode weiterzugeben:

def veg (total, soße):

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

python click_example.py --gravy y

Der Hilfebildschirm hat sich ebenfalls geändert:

Python Klicken Sie auf den Hilfebildschirm

Hier ist der gesamte Code (mit einigen geringfügigen Änderungen an der Übersichtlichkeit):

Importklick. importiere random @ click.command () @ click.option ('- Soße', Standard = Falsch, Hilfe = 'Mit Soße "an das Gemüse anhängen.') @ click.option ('- total', Standard = 3, help = 'Anzahl der auszugebenden Gemüsesorten.') def veg (total, soße): Die Basismethode gibt ein zufälliges Gemüse für die Anzahl im Bereich (total) zurück: choice = random.choice (['Karotte', 'Kartoffel', 'Rübe', 'Pastinake']) wenn Soße: print (f '{Wahl} mit Soße') sonst: Druck (Wahl) wenn __name__ == '__main__': veg ()

Noch mehr Klickoptionen

Sobald Sie die Grundlagen kennen, können Sie sich komplexere Klickoptionen ansehen. 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 Anleitung zum Python-Wörterbuch.

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

Importklick. importiere random @ click.command () def add (): Die Basismethode addiert zwei Zahlen. pass if __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 ('- Zahlen', nargs = 2, type = int, help = 'Addiere zwei Zahlen zusammen.')

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

Zum Schluss ändern Sie die hinzufügen Methode, um die zu akzeptieren Zahlen Argument, und machen Sie einige Verarbeitung mit ihnen:

def add (numbers): Die Basismethode addiert zwei Zahlen. Ergebnis = Zahlen [0] + Zahlen [1] drucken (f '{Zahlen [0]} + {Zahlen [1]} = {Ergebnis}')

Jeder Wert, den Sie übergeben, ist über das zugänglich Zahlen Objekt. So verwenden Sie es in der Befehlszeile:

python click_example_2.py --numbers 1 2
Python Click nargs Ergebnis

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

Wie Sie gesehen haben, ist Click einfach zu bedienen, aber sehr leistungsfähig. Während diese Beispiele nur die Grundlagen von Click abdecken, gibt es viele weitere Funktionen, die Sie jetzt kennenlernen können, da Sie die Grundlagen genau kennen.

Wenn Sie nach Python-Projekten suchen, mit denen Sie Ihre neu entdeckten Fähigkeiten üben können, lernen Sie wie man ein Arduino mit Python steuert So programmieren und steuern Sie ein Arduino mit PythonLeider ist es nicht möglich, ein Arduino direkt in Python zu programmieren, aber Sie können es mit einem Python-Programm über USB steuern. Hier ist wie. Weiterlesen oder wie wäre es Lesen und Schreiben in Google Sheets mit Python Lesen und Schreiben in Google Sheets mit PythonPython mag seltsam und ungewöhnlich erscheinen, ist jedoch leicht zu erlernen und zu verwenden. In diesem Artikel zeige ich Ihnen, wie Sie mit Python in Google Sheets lesen und schreiben. Weiterlesen ? Jedes dieser Projekte eignet sich perfekt für die Konvertierung in Click!

Joe hat einen Abschluss in Informatik von der University of Lincoln, UK. Er ist ein professioneller Softwareentwickler, und wenn er keine Drohnen fliegt oder Musik schreibt, macht er oft Fotos oder produziert Videos.