Reklama

Click to pakiet Pythona do pisania interfejsów wiersza poleceń. Tworzy dla Ciebie piękną dokumentację i pozwala budować interfejsy wiersza poleceń w zaledwie jednym wierszu kodu. Krótko mówiąc: jest niesamowity i może pomóc przenieść twoje programy na wyższy poziom.

Oto, jak możesz go użyć, aby ożywić swoje projekty w języku Python.

Pisanie programów wiersza poleceń bez kliknięcia

Możliwe jest pisanie programów wiersza poleceń bez użycia Click, ale wymaga to więcej wysiłku i dużo więcej kodu. Musisz przeanalizować argumenty wiersza poleceń, przeprowadzić sprawdzenie poprawności, rozwinąć logikę do obsługi różnych argumentów i zbudować niestandardowe menu pomocy. Chcesz dodać nową opcję? Będziesz wtedy modyfikować swoją funkcję pomocy.

Nie ma nic złego w pisaniu własnego kodu, a zrobienie tego to świetny sposób na naukę Pythona, ale Click umożliwia przestrzeganie zasad „Don't Repeat Yourself” (DRY). Bez Click napiszesz delikatny kod, który wymaga wielu czynności konserwacyjnych za każdym razem, gdy pojawią się jakiekolwiek zmiany.

Oto prosty interfejs wiersza poleceń zakodowany bez kliknięcia:

import sys. import random def do_work (): Funkcja do obsługi użycia wiersza poleceń args = sys.argv args = args [1:] # Pierwszym elementem args jest nazwa pliku, jeśli len (args) == 0: print ('Nie przekazałeś żadnych poleceń w!') else: dla argumentów in: if a == '--help': print ('Podstawowy program wiersza poleceń') print ('Opcje:') print ('- -help -> pokaż to podstawowe menu pomocy. ”) print ('--monty -> pokaż cytat Monty Python.') print ('--veg -> pokaż losowe warzywo') elif a == '--monty': print (' Co to jest, następnie? „Romanes eunt domus”? Ludzie nazywają się Romanes, idą do domu? ') Elif a ==' --veg ': print (random.choice ([' Carrot ',' Potato ',' Rzepa '])) else: print (' Nierozpoznany argument. ') if __name__ ==' __main__ ': do_work ()
Przykład interfejsu wiersza polecenia Python

Te 27 linii Pythona działa dobrze, ale są bardzo delikatne. Wszelkie zmiany wprowadzone w programie będą wymagały wielu innych kodów pomocniczych do zmiany. Jeśli zmienisz nazwę argumentu, musisz zaktualizować informacje pomocy. Ten kod może łatwo wymknąć się spod kontroli.

Oto ta sama logika z Click:

kliknij import. import random @ click.command () @ click.option ('- monty', default = False, help = 'Pokaż cytat Monty Python.') @ click.option ('- veg', default = False, help = 'Pokaż losowe warzywo.') def do_work (monty, veg): Przykład podstawowego kliknięcia będzie podążał za twoimi poleceniami, jeśli monty: print ('Co to jest? „Romanes eunt domus”? Ludzie nazywają się Romanes, idą do domu? ') If veg: print (random.choice ([' Carrot ',' Potato ',' Rzepa ']))) if __name__ ==' __main__ ': do_work ()

Ten przykład Click implementuje tę samą logikę w 16 liniach kodu. Argumenty są analizowane i generowany jest ekran pomocy:

Python Click automatycznie generowany ekran pomocy

To podstawowe porównanie pokazuje, ile czasu i wysiłku możesz zaoszczędzić, używając programów takich jak Click. Chociaż interfejs wiersza poleceń może wyglądać tak samo dla użytkownika końcowego, kod źródłowy jest prostszy, a Ty zaoszczędzisz dużo czasu na kodowanie. Wszelkie zmiany lub aktualizacje, które napiszesz w przyszłości, również spowodują znaczny wzrost czasu opracowywania.

Rozpoczęcie pracy z Click for Python

Przed użyciem Kliknij, możesz skonfiguruj środowisko wirtualne Dowiedz się, jak korzystać ze środowiska wirtualnego PythonNiezależnie od tego, czy jesteś doświadczonym programistą Python, czy dopiero zaczynasz, nauka konfigurowania środowiska wirtualnego jest niezbędna w każdym projekcie Python. Czytaj więcej . Zapobiegnie to konfliktom pakietów Python z systemem Python lub innymi projektami, nad którymi możesz pracować. Ty też możesz wypróbuj Python w swojej przeglądarce Wypróbuj Python w przeglądarce za pomocą tych bezpłatnych interaktywnych powłok onlineNiezależnie od tego, czy przeglądasz te przykłady w języku Python, czy przeglądasz podstawy tablic i list, możesz przetestować kod bezpośrednio w przeglądarce. Oto najlepsze znalezione przez nas interpretery języka Python. Czytaj więcej jeśli chcesz pobawić się Pythonem i Click.

Na koniec upewnij się, że używasz Python w wersji 3. Możliwe jest użycie Click z Python w wersji 2, ale te przykłady znajdują się w Python 3. Dowiedz się więcej o różnice między Python 2 i Python 3.

Po zakończeniu instalacji kliknij Kliknij w wierszu polecenia za pomocą PIP (jak zainstalować PIP dla Pythona):

kliknij pip instalacji

Pisanie programu pierwszego kliknięcia

W edytorze tekstu zacznij od importowania Kliknij:

kliknij import

Po zaimportowaniu utwórz plik metoda i a Główny Punkt wejścia. Nasz Przewodnik po języku Python OOP omawia je bardziej szczegółowo, ale zapewniają miejsce do przechowywania kodu i sposób, w jaki Python może go uruchomić:

kliknij import. import random def veg (): Podstawowa metoda zwróci losowy wydruk warzyw (random.choice ([„Marchewka”, „Ziemniak”, „Rzepa”, „Pasternak”])), jeśli __name__ == '__main__': veg ()

Ten bardzo prosty skrypt wygeneruje losowe warzywo. Twój kod może wyglądać inaczej, ale ten prosty przykład jest idealny do połączenia z Click.

Zapisz to jako click_example.py, a następnie uruchom go w wierszu polecenia (po przejściu do jego lokalizacji):

python click_example.py

Powinieneś zobaczyć losową nazwę warzywa. Poprawmy rzeczy, dodając Click. Zmień kod, aby uwzględnić dekoratory Click i a dla pętla:

@ click.command () @ click.option ('- total', default = 3, help = 'Liczba warzyw do produkcji.') def veg (ogółem): Metoda podstawowa zwróci losowe warzywo dla liczby w zakresie (ogółem): print (random.choice ([„Marchewka”, „Ziemniak”, „Rzepa”, „Pasternak”])), jeśli __nazwa__ == „__main__”: veg ()

Po uruchomieniu zobaczysz trzykrotnie losowe warzywo.

Podzielmy te zmiany. The @ click.command () konfigurator dekoratora Kliknij, aby pracować z funkcją znajdującą się bezpośrednio za dekoratorem. W tym przypadku jest to veg () funkcjonować. Będziesz tego potrzebować do każdej metody, której chcesz używać z Click.

The @ click.option dekorator konfiguruje kliknij, aby zaakceptować parametry z wiersza poleceń, które przekaże do twojej metody. Użyto tutaj trzech argumentów:

  1. -całkowity: To jest nazwa wiersza poleceń dla całkowity argument.
  2. domyślna: Jeśli nie określisz całkowitego argumentu podczas korzystania ze skryptu, Click użyje wartości domyślnej.
  3. Wsparcie: Krótkie zdanie wyjaśniające, jak korzystać z programu.

Zobaczmy Kliknij w akcji. W wierszu polecenia uruchom skrypt, ale podaj całkowity taki argument:

python click_example.py - ogółem 10

Przez ustawienie – Ogółem 10 z wiersza poleceń skrypt wyświetli dziesięć losowych warzyw.

Jeśli zdasz -Wsparcie flaga, zobaczysz ładną stronę pomocy wraz z opcjami, których możesz użyć:

python click_example.py --help
Python Kliknij pomoc

Dodawanie kolejnych poleceń

W tej samej funkcji można używać wielu dekoratorów Click. Dodaj kolejną opcję kliknięcia do warzywa funkcjonować:

@ click.option ('- gravy', default = False, help = 'Append "with gravy" do warzyw.)

Nie zapomnij przekazać tego do metody:

def veg (ogółem, sos):

Teraz po uruchomieniu pliku możesz przekazać sos flaga:

python click_example.py - gravy y

Zmienił się także ekran pomocy:

Python Kliknij ekran pomocy

Oto cały kod (z niewielkimi zmianami w celu uporządkowania):

kliknij import. import random @ click.command () @ click.option ('- gravy', default = False, help = 'Append "with gravy" do warzyw.) @ click.option ('- total', default = 3, help = 'Liczba warzyw do produkcji.') def veg (ogółem, sos): Metoda podstawowa zwróci losowe warzywo dla liczby w zakresie (ogółem): wybór = random.choice ([„Marchewka”, „Ziemniak”, „Rzepa”, „Pasternak”]) jeśli sos: drukuj (f '{wybór} z sosiem') else: drukuj (wybór) jeśli __name__ == '__main__': veg ()

Jeszcze więcej Kliknij Opcje

Po zapoznaniu się z podstawami możesz zacząć patrzeć na bardziej złożone opcje Click. W tym przykładzie dowiesz się, jak przekazać kilka wartości do pojedynczego argumentu, którego kliknięcie przekształci w krotkę. Możesz dowiedzieć się więcej o krotkach w naszym przewodnik po słowniku Python.

Utwórz nowy plik o nazwie click_example_2.py. Oto potrzebny kod startowy:

kliknij import. import random @ click.command () def add (): Metoda podstawowa doda dwie liczby razem. pass if __name__ == '__main__': add ()

Nie ma tu nic nowego. Poprzednia sekcja szczegółowo wyjaśnia ten kod. Dodać @ click.option nazywa liczby:

@ click.option ('- numbers', nargs = 2, type = int, help = 'Dodaj dwie liczby razem.')

Jedyny nowy kod tutaj to nargs = 2i type = int opcje Mówi to Kliknij, aby zaakceptować dwie wartości dla liczby opcja i oba muszą być liczbami całkowitymi typu. Możesz to zmienić na dowolny numer lub (prawidłowy) typ danych, który Ci się podoba.

Na koniec zmień Dodaj metoda zaakceptowania liczby argument i wykonaj z nimi przetwarzanie:

def add (numbers): Metoda podstawowa doda dwie liczby razem. wynik = liczby [0] + liczby [1] wydrukuj (f '{liczby [0]} + {liczby [1]} = {wynik}')

Każda przekazywana wartość jest dostępna poprzez liczby obiekt. Oto jak używać go w wierszu poleceń:

python click_example_2.py - numery 1 2
Wynik nargs w Python Click

Kliknij Jest rozwiązaniem dla narzędzi Python

Jak widać, Click jest łatwy w użyciu, ale bardzo wydajny. Chociaż te przykłady obejmują tylko podstawy Click, istnieje o wiele więcej funkcji, o których możesz się teraz dowiedzieć, ponieważ dobrze znasz podstawy.

Jeśli szukasz projektów w języku Python, aby ćwiczyć nowe umiejętności, dlaczego nie uczyć się jak kontrolować Arduino za pomocą Pythona Jak programować i kontrolować Arduino za pomocą PythonaNiestety nie jest możliwe bezpośrednie zaprogramowanie Arduino w Pythonie, ale można sterować nim przez USB za pomocą programu Python. Oto jak. Czytaj więcej lub co powiesz na czytanie i pisanie do Arkuszy Google za pomocą Pythona Jak czytać i zapisywać w Arkuszach Google za pomocą PythonaPython może wydawać się dziwny i niezwykły, jednak jest łatwy do nauczenia się i obsługi. W tym artykule pokażę, jak czytać i pisać w Arkuszach Google przy użyciu Pythona. Czytaj więcej ? Każdy z tych projektów byłby idealny do konwersji na Click!

Joe jest absolwentem informatyki na University of Lincoln w Wielkiej Brytanii. Jest profesjonalnym programistą, a kiedy nie lata latającymi dronami ani nie pisze muzyki, często można go znaleźć przy robieniu zdjęć lub tworzeniu filmów.