Sådan opretter du dine egne kommandolinjeprogrammer i Python med klik

  • Edmund Richardson
  • 0
  • 1095
  • 181
Reklame

Click er en Python-pakke til skrivning af kommandolinjegrænseflader. Det producerer smuk dokumentation for dig og giver dig mulighed for at oprette kommandolinjegrænseflader i så lidt som en kodelinje. Kort sagt: det er fantastisk og kan hjælpe med at tage dine programmer til det næste niveau.

Her er, hvordan du kan bruge det til at livne dine Python-projekter.

Skrivning af kommandolinjeprogrammer uden klik

Det er muligt at skrive kommandolinjeprogrammer uden at bruge Click, men at gøre det kræver større indsats og meget mere kode. Du skal analysere kommandolinjeargumenter, udføre validering, udvikle logik til at håndtere forskellige argumenter og oprette en brugerdefineret hjælpemenu. Vil du tilføje en ny mulighed? Du ændrer derefter din hjælpefunktion.

Der er ikke noget galt i at skrive din egen kode, og at gøre det er en fantastisk måde at lære Python, men Click giver dig mulighed for at følge “Gentag ikke dig selv” (TØR) -principper. Uden klik skriver du kode, der er skrøbelig og kræver masser af vedligeholdelse, når der sker ændringer.

Her er en simpel kommandolinjegrænseflade kodet uden Klik:

import sys import tilfældig def do_work (): "" "Funktion til håndtering af kommandolinjebrug" "" args = sys.argv args = args [1:] # Det første element i args er filnavnet hvis len (args) == 0 : print ('Du har ikke bestået nogen kommandoer i!') ellers: for a i args: if a == '--help': print ('Basic command line program') print ('Options:') print (' --hjælp -> vis denne basale hjælpemenu. ') udskriv (' - monti -> vis et citat fra Monty Python. ') udskriv (' --veg -> vis en tilfældig grøntsag ') elif a ==' - monty ': print (' Hvad er det her? "Romanes eunt domus"? Folk kaldte Romanes, de går, huset? ') elif a ==' --veg ': print (random.choice ([' Gulerod ',' Kartoffel ',' Næse '])) andet: udskriv (' Ukendt argument. ') Hvis __name__ ==' __main__ ': do_work ()

Disse 27 linjer af Python fungerer godt, men er meget skrøbelige. Enhver ændring, du foretager i dit program, har brug for mange andre understøttelseskoder for at ændre. Hvis du ændrer et argumentnavn, skal du opdatere hjælpinformationen. Denne kode kan let vokse ud af kontrol.

Her er den samme logik med Click:

import klik import tilfældig @ click.command () @ click.option ('- monty', default = False, help = "Vis et Monty Python-tilbud.") @ click.option ('- veg', default = False , help = "Vis en tilfældig grøntsag.") def do_work (monty, veg): "" "Grundlæggende klikeksempel vil følge dine kommandoer" "" hvis monty: print ('Hvad er det her, da?') Romanes eunt domus "? Folk kaldte romere, de går, huset? ') Hvis veg: print (random.choice ([' gulerod ',' kartoffel ',' kålrot '])) hvis __name__ ==' __main__ ': do_work ()

Dette klikeksempel implementerer den samme logik i 16 kodelinjer. Argumenterne er parset for dig, og hjælpeskærmen genereres:

Denne grundlæggende sammenligning viser, hvor meget tid og kræfter du kan spare ved hjælp af programmer som f.eks. Click. Mens kommandolinjegrænsefladen muligvis vises den samme for slutbrugeren, er den underliggende kode enklere, og du sparer masser af tidskodning. Eventuelle ændringer eller opdateringer, du skriver i fremtiden, vil også se betydelige stigninger i udviklingstiden.

Kom godt i gang med Klik for Python

Inden du bruger Click, kan det være en god ide at konfigurere et virtuelt miljø Lær hvordan man bruger Python-virtuelle miljø Lær hvordan man bruger Python-virtuelle miljø Uanset om du er en erfaren Python-udvikler, eller du lige er i gang med at lære at konfigurere et virtuelt miljø er afgørende for ethvert Python-projekt. . Dette vil stoppe dine Python-pakker, der er i konflikt med dit system Python eller andre projekter, du muligvis arbejder på. Du kan også prøve Python i din browser Prøv Python i din browser med disse gratis online interaktive skaller Prøv Python i din browser med disse gratis online interaktive skaller Uanset om du går igennem disse Python-eksempler eller gennemgår det grundlæggende i arrays og lister, kan du test koden lige i din browser. Her er de bedste online Python-tolke, vi har fundet. hvis du vil lege med Python og Click.

Endelig skal du sikre dig, at du kører Python version 3. Det er muligt at bruge Click med Python version 2, men disse eksempler er i Python 3. Lær mere om forskellene mellem Python 2 og Python 3.

Når du er klar, skal du installere Klik fra kommandolinjen ved hjælp af PIP (hvordan du installerer PIP til Python):

pip install klik

Skrivning af dit første klik-program

I en teksteditor skal du starte med at importere Klik:

import klik

Når du er importeret, skal du oprette en metode og a vigtigste indgang. Vores Python OOP-guide dækker disse mere detaljeret, men de giver et sted at gemme din kode og en måde for Python at begynde at køre den på:

import klik import tilfældig def veg (): "" "Grundlæggende metode vil returnere en tilfældig grøntsag" "" udskrivning (random.choice (['Gulerod', 'Kartoffel', 'Næse', 'Parsnip'])) hvis __name__ = = '__main__': veg ()

Dette meget enkle script giver en tilfældig grøntsag. Din kode kan se anderledes ud, men dette enkle eksempel er perfekt til at kombinere med Click.

Gem dette som click_example.py, og kør det derefter på kommandolinjen (efter at have navigeret til dens placering):

python click_example.py

Du skal se et tilfældigt vegetabilsk navn. Lad os forbedre tingene ved at tilføje Click. Skift din kode til at inkludere Click Decorators og en til loop:

@ click.command () @ click.option ('- total', standard = 3, help = "Antal grøntsager, der skal produceres.") def veg (total): "" "Grundlæggende metode vil returnere en tilfældig grøntsag" " "for antal inden for rækkevidde (i alt): udskriv (random.choice (['Gulerod', 'Kartoffel', 'Næse', 'Pastinøg'])) hvis __name__ == '__main__': veg ()

Når du kører, vil du se en tilfældig grøntsag vist tre gange.

Lad os fordele disse ændringer. Det @ Click.command () dekoratørkonfigurationer Klik for at arbejde med funktionen umiddelbart efter dekoratøren. I dette tilfælde er dette veg () fungere. Du har brug for dette til enhver metode, du gerne vil bruge med Click.

Det @ click.option dekoratør konfigurerer klik for at acceptere parametre fra kommandolinjen, som det vil videregive til din metode. Der er tre argumenter brugt her:

  1. -i alt: Dette er kommandolinjens navn for i alt argument.
  2. Standard: Hvis du ikke specificerer det samlede argument, når du bruger dit script, bruger Click værdien fra standard.
  3. Hjælp: En kort sætning, der forklarer, hvordan du bruger dit program.

Lad os se Klik i handling. Kør dit script fra kommandolinjen, men angiv i alt argument som dette:

python click_example.py - total 10

Ved at indstille -i alt 10 fra kommandolinjen udskriver dit script ti tilfældige grøntsager.

Hvis du passerer i -Hjælp markeres, ser du en dejlig hjælpeside sammen med de muligheder, du kan bruge:

python click_example.py - hjælp

Tilføjelse af flere kommandoer

Det er muligt at bruge mange Click-dekoratører på den samme funktion. Føj en anden klikfunktion til veg fungere:

@ click.option ('- sauce', standard = Falsk, hjælp = "Tilføj" med sauce "på grøntsagerne.")

Glem ikke at videregive dette til metoden:

def veg (total, sauce):

Når du kører din fil nu, kan du videregive sovs flag:

python click_example.py - alvorlig y

Hjælpeskærmen er også ændret:

Her er hele koden (med lidt mindre refactoring for pænhed):

import klik import tilfældig @ click.command () @ click.option ('- sauce', standard = Falsk, hjælp = "Tilføj" med sauce "til grøntsagerne.") @ click.option ('- total', default = 3, help = "Antal grøntsager, der skal produceres.") def veg (total, sauce): "" "Grundlæggende metode returnerer en tilfældig grøntsag" "" for antal inden for rækkevidde (totalt): valg = random.choice ( ['Gulerod', 'Kartoffel', 'Næse', 'Pastinak']) hvis sauce: udskriv (f 'valg med sauce') andet: print (valg) hvis __name__ == '__main__': veg ()

Endnu flere klikindstillinger

Når du har kendt det grundlæggende, kan du begynde at se på mere komplekse klikmuligheder. I dette eksempel lærer du, hvordan du overfører flere værdier til et enkelt argument, som Click konverterer til en tuple. Du kan lære mere om tuples i vores guide til Python-ordbogen.

Opret en ny fil kaldet click_example_2.py. Her er den startkode, du har brug for:

import klik import tilfældig @ click.command () def add (): "" "Grundlæggende metode tilføjer to numre sammen." "" pass, hvis __name__ == '__main__': tilføj ()

Der er ikke noget nyt her. Det foregående afsnit forklarer denne kode detaljeret. Tilføj en @ click.option hedder numre:

@ click.option ('- numre', nargs = 2, type = int, help = "Tilføj to numre sammen.")

Den eneste nye kode her er nargs = 2, og skrive = int muligheder. Dette fortæller Klik for at acceptere to værdier for numre mulighed, og at de begge skal være af typen heltal. Du kan ændre dette til ethvert nummer eller (gyldig) datatype, du kan lide.

Endelig skal du ændre tilføje metode til at acceptere numre argument, og foretage en vis behandling med dem:

def tilføje (tal): "" "Grundlæggende metode tilføjer to numre sammen." "" resultat = tal [0] + tal [1] udskriv (f 'numre [0] + numre [1] =  resultat')

Hver værdi, du indtaster, er tilgængelig via numre objekt. Sådan bruges det på kommandolinjen:

python click_example_2.py - tal 1 2

Klik på Er løsningen for Python-hjælpeprogrammer

Som du har set, er Click let at bruge, men meget kraftfuld. Selvom disse eksempler kun dækker de grundlæggende elementer i Click, er der mange flere funktioner, du kan lære om nu, når du har et solidt greb om det grundlæggende.

Hvis du leder efter nogle Python-projekter, du kan øve dine nye fundne færdigheder med, hvorfor ikke lære at kontrollere en Arduino med Python Sådan programmeres og styres en Arduino med Python Sådan programmeres og styres en Arduino med Python Det er desværre umuligt for direkte at programmere en Arduino i Python, men du kan kontrollere den over USB ved hjælp af et Python-program. Sådan gør du. , eller hvad med at læse og skrive til Google Sheets med Python Sådan læses og skrives til Google Sheets With Python Sådan læses og skrives til Google Sheets With Python Python kan virke underligt og usædvanligt, men det er let at lære og bruge. I denne artikel viser jeg dig, hvordan du læser og skriver til Google Sheets vha. Python. ? Ét af disse projekter ville være perfekte til konvertering til Click!




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.