Kako stvoriti vlastite programe naredbenog retka u Python-u sa klikom

  • Michael Fisher
  • 0
  • 4917
  • 477
Oglas

Click je Python paket za pisanje sučelja naredbenog retka. Izrađuje prekrasnu dokumentaciju za vas i omogućuje vam izradu sučelja naredbenog retka u samo jednoj liniji koda. Ukratko: fenomenalno je i može vam pomoći podići programe na višu razinu.

Evo kako to možete koristiti za oživljavanje svojih Python projekata.

Pisanje programa naredbenog retka bez klika

Programe naredbenog retka moguće je pisati bez klika, ali to zahtijeva više napora i puno više koda. Trebate analizirati argumente naredbenog retka, izvršiti provjeru valjanosti, razviti logiku za obradu različitih argumenata i sastaviti prilagođeni izbornik pomoći. Želite li dodati novu opciju? Tada ćete mijenjati funkciju pomoći.

Nema ništa loše u pisanju vlastitog koda, a to je odličan način da naučite Python, ali klik vam omogućuje da pratite sljedeće “Ne ponavljajte sebe” (DRY) principa. Bez klika, napisat ćete kôd koji je krhak i zahtijeva puno održavanja kad god se dogode bilo kakve promjene.

Evo jednostavnog sučelja naredbenog retka kodiranog bez klika:

import sys uvoz slučajnih def do_work (): "" "Funkcija za rukovanje uporabom naredbenog retka" "" args = sys.argv args = args [1:] # Prvi element argova je naziv datoteke ako je len (args) == 0 : print ('Nisi proslijedio nijednu naredbu!') else: for a in args: if a == '--help': print ('Osnovni program naredbenog retka') print ('Options:') print (' --help -> prikaži ovaj osnovni meni pomoći. ') print (' --monty -> pokaži Monty Python citat. ') print (' --veg -> pokaži nasumično povrće ') elif a ==' - monty ': print ("Što je, dakle,?" Romanes eunt domus "? Ljudi se zovu Romans, oni idu, kuća?') elif a == '--veg': print (random.choice ([' Mrkva ',' krompir ',' rezina '])) ostalo: ispis (' Neprepoznat argument. ') Ako je __name__ ==' __main__ ': do_work ()

Tih 27 redaka Pythona djeluje dobro, ali su vrlo krhki. Svaka promjena koju napravite u svom programu trebat će mnogo drugih pomoćnih kodova da bi se promijenila. Ako promijenite naziv argumenta, morat ćete ažurirati informacije pomoći. Ovaj kôd može lako prerasti kontrolu.

Evo iste logike s klikom:

import click import random @ click.command () @ click.option ('- monty', default = False, help = "Pokaži Monty Python citat.") @ click.option ('- veg', default = False , help = "Pokažite nasumično povrće.") def do_work (monty, veg): "" "Primjer osnovnog klika slijedit će vaše naredbe" "" ako monty: print ('Što je to onda?' Romanes eunt domus "? Ljudi su se zvali Romanes, oni idu, kuća?") Ako je veg: print (random.choice (['Mrkva', 'Krompir', 'Orah')) ako __name__ == '__main__': do_work ()

Ovaj primjer klika provodi istu logiku u 16 redaka koda. Argumenti su za vas raščlanjeni i generiran je zaslon pomoći:

Ova osnovna usporedba pokazuje koliko vremena i truda možete uštedjeti pomoću programa kao što je Click. Iako se sučelje naredbenog retka krajnjem korisniku može pojaviti isto, temeljni je kod jednostavniji i uštedjet ćete puno vremena kodiranja. Sve promjene ili ažuriranja koja napišete u budućnosti također će vidjeti znatna porasta vremena razvoja.

Početak rada s klikom za Python

Prije korištenja klika, možda biste željeli konfigurirati virtualno okruženje Saznajte kako koristiti virtualno okruženje Python-a Saznajte kako koristiti virtualno okruženje Python-a Bez obzira jeste li iskusni programer Python-a ili ste tek započeli s učenjem kako postaviti virtualno okruženje je bitno za svaki Python projekt. , Ovo će zaustaviti vaše Python pakete u sukobu sa vašim sustavom Python ili drugim projektima na kojima možda radite. Možete isprobati i Python u pregledniku. Isprobajte Python u svom pregledniku s ovim besplatnim internetskim interaktivnim školjkama. Isprobajte Python u svom pregledniku s ovim besplatnim internetskim interaktivnim školjkama Bilo da prolazite kroz ove Python primjere ili pregledate osnove nizova i popisa, možete testirajte kôd pravo u svom pregledniku. Evo najboljih internetskih tumača Python-a koje smo pronašli. ako se želite igrati oko Pythona i Klika.

Na kraju, provjerite imate li verziju Pythona 3. Moguće je koristiti Click s Python verzijom 2, ali ovi su primjeri u Python 3. Saznajte više o razlikama između Python 2 i Python 3.

Nakon što ste spremni, instalirajte Klik iz naredbenog retka pomoću PIP-a (kako instalirati PIP za Python):

pip instalacija klik

Pisanje programa prvog klika

U uređivaču teksta započnite s uvozom klika:

uvoz klik

Nakon uvoza izradite način i a glavni ulazna točka. Naš vodič za Python OOP detaljnije opisuje ove podatke, ali oni pružaju mjesto za pohranu vašeg koda i način da se Python počne baviti njime:

import import import slučajni def veg (): "" "Osnovna metoda vratit će slučajni povrtni" "" ispis (random.choice (['Mrkva', 'Krompir', 'Kupina', 'Pasuljica')) ako je __name__ = = '__main__': veg ()

Ovaj vrlo jednostavan skripta će proizvesti slučajno povrće. Vaš kôd može izgledati drugačije, ali ovaj je jednostavni primjer savršen za kombiniranje s klikom.

Spremite ovo kao click_example.py, a zatim je pokrenite u naredbenom retku (nakon navigacije do njegove lokacije):

python click_example.py

Trebali biste vidjeti nasumično ime povrća. Poboljšajmo stvari dodavanjem Klika. Promijenite svoj kôd tako da sadrži klikove i a za petlja:

@ click.command () @ click.option ('- ukupno', zadano = 3, help = "Broj povrća za izlaz.") def veg (total): "" "Osnovna metoda će vratiti slučajno povrće" " "za broj u rasponu (ukupno): ispis (random.choice (['Mrkva', 'Krompir', 'Repica', 'Kaša'))) ako je __name__ == '__main__': veg ()

Nakon trčanja vidjet ćete nasumično povrće prikazano tri puta.

Raščlanimo te promjene. @ Click.command () konfiguracije ukrasitelja Kliknite za rad s funkcijom koja odmah slijedi. U ovom slučaju to je slučaj povrće () funkcija. Ovo će vam trebati za svaku metodu koju želite koristiti s klikom.

'click.option dekorator konfiguracije kliknite da biste prihvatili parametre iz naredbenog retka, koji će prenijeti na vašu metodu. Ovdje su korištena tri argumenta:

  1. -ukupno: Ovo je naziv naredbenog retka za ukupno argument.
  2. zadano: Ako ne odredite ukupni argument pri korištenju skripte, Click će upotrijebiti vrijednost iz zadane vrijednosti.
  3. Pomozite: Kratka rečenica koja objašnjava kako koristiti svoj program.

Pogledajmo Klik na djelu. Iz naredbenog retka pokrenite skriptu, ali prođite u ukupno argument poput ovog:

python click_example.py - ukupno 10

Postavljanjem -ukupno 10 iz naredbenog retka, vaša skripta ispisat će deset slučajnih povrća.

Ako uđete u -Pomozite zastave, vidjet ćete lijepu stranicu pomoći, zajedno s opcijama koje možete koristiti:

python click_example.py - pomoć

Dodavanje dodatnih naredbi

Na istoj funkciji moguće je koristiti mnogo klikova ukrasnika. Dodajte drugu opciju klika na povrće funkcija:

@ click.option ('- matirač', zadano = netočno, pomoć = "dodavanje" s gravu "povrću.")

Ne zaboravite to prenijeti u metodu:

def veg (ukupno, podmladak):

Sada kada pokrenete datoteku, možete je proslijediti u sos zastava:

python click_example.py --gravy y

Zaslon pomoći je također promijenjen:

Evo cijelog koda (s nekim manjim refaktoringima za urednost):

import click import random @ click.command () @ click.option ('- matirač', zadano = False, help = "Dodajte" s gravu "povrću.") @ click.option ('- ukupno', default = 3, help = "Broj povrća za izlaz.") def veg (total, gravy): "" "Osnovna metoda vraća slučajno povrće" "" za broj u rasponu (ukupno): choice = random.choice ( ['Mrkva', 'Krompir', 'Repna', 'Kaša']) ako je matiranje: ispis (f 'izbor sa matiranjem') ostalo: ispis (izbor) ako je __name__ == '__main__': veg ()

Opcije čak i više klikova

Kad upoznate osnove, možete započeti sagledavati složenije mogućnosti Klika. U ovom primjeru naučit ćete kako nekoliko vrijednosti prenijeti u jedan argument, koji će Click pretvoriti u tuple. Možete saznati više o tupovima u našem vodiču za Python rječnik.

Izradite novu datoteku pod nazivom click_example_2.py. Evo početnog koda koji vam treba:

import click import random @ click.command () def add (): "" "Osnovna metoda će dodati dva broja zajedno." "" pass if __name__ == '__main__': add ()

Ovdje nema ništa novo. Prethodni odjeljak detaljno objašnjava ovaj kôd. Dodati 'click.option zvao brojevi:

@ click.option ('- brojevi', nargs = 2, upišite = int, help = "Dodajte dva broja zajedno.")

Jedini novi kod ovdje su nargs = 2, i the type = int opcije. Ovo govori Click da prihvatite dvije vrijednosti za brojevi opciju i da moraju biti oba cjelobrojna tipa. To možete promijeniti na bilo koji broj ili (valjanu) vrstu podataka koji želite.

Na kraju promijenite dodati metoda prihvaćanja brojevi argument i izvršite neke obrade s njima:

def add (brojevi): "" "Osnovna metoda će dodati dva broja zajedno." "" rezultat = brojevi [0] + brojevi [1] ispis (f 'brojevi [0] + brojevi [1] =  proizlaziti')

Svaka vrijednost koju unesete je dostupna putem brojevi objekt. Evo kako ga koristiti u naredbenom retku:

python click_example_2.py - brojevi 1 2

Kliknite Je li rješenje za Python Utilities

Kao što ste vidjeli, Click je jednostavan za korištenje, ali vrlo moćan. Iako ovi primjeri pokrivaju samo temelje Klika, postoji puno više značajki o kojima možete saznati sada kad dobro razumijete osnove..

Ako tražite neke Python projekte s kojima biste vježbali svoje nove pronađene vještine, zašto ne naučiti kako kontrolirati Arduino s Python-om Kako programirati i kontrolirati Arduino s Pythonom Kako programirati i kontrolirati Arduino s Python-om Nažalost, to je nemoguće izravno programirati Arduino na Python-u, ali možete ga upravljati preko USB-a pomoću Python programa. Evo kako. ili kako o čitanju i pisanju u Google tablice s Python-om Kako čitati i pisati na Google Sheets s Python-om Kako čitati i pisati u Google Sheets s Python-om Python se može činiti čudnim i neobičnim, no lako je učiti i koristiti. U ovom ću vam članku pokazati kako čitati i pisati na Google tablice koristeći Python. ? Bilo koji od ovih projekata bio bi savršen za pretvaranje u Click!




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.