Opret en statuslinje i Python CLI

Opret en statuslinje i Python CLI

Hver gang du downloader en fil eller starter et spil, ser du en æstetisk animation, der opdaterer sig selv, indtil den er færdig. Dette er en statuslinje. En statuslinje er et grafisk element, der bruges til at visualisere forløbet af en opgave, såsom at downloade, uploade eller overføre filer.





Der er to typer fremskridtsbjælker: bestemt og ubestemt. Bestem statusbjælker sporer en opgaves fremskridt over tid. Ubestemte fremskridtsbjælker kører uendeligt med en looping-animation.





MAKEUSE AF DAGENS VIDEO

Så hvordan kan du oprette en bestemt statuslinje i et Python CLI-program?





Hvad er tqdm-modulet?

tqdm er et modul, der primært vedligeholdes af Casper da Costa-Luis sammen med ti andre medlemmer. tqdm stammer fra det arabiske ord taqaddum, som kan betyde 'fremskridt', og er en forkortelse for 'Jeg elsker dig så højt' på spansk (te quiero demasiado).

Ved at bruge tqdm-modulet kan du lave en attraktiv, funktionel statuslinje direkte i din terminal. For at installere tqdm-modulet skal du åbne din terminal og køre:



pip install tqdm

Hvad er tidsmodulet?

Pythons standard hjælpemodul inkluderer tidsmodulet som standard, så du behøver ikke at installere det. Du kan bruge dvalefunktionen i tidsmodulet til at tilføje forsinkelse til dine applikationer, hvilket vil hjælpe med at visualisere linjens fremskridt.

Du kan bruge tidsmodulet til at få dato og klokkeslæt, planlægge opgaver og bygge nyttige applikationer som f simpelt vækkeur eller et stopur.





Sådan tilføjer du en statuslinje og tilpasser den

Standardstatuslinjen er nem at bruge, og du kan tilpasse den med flere muligheder.

1. Enkel statuslinje

Du kan oprette en simpel statuslinje ved at importere tqdm-klassen fra tqdm-modulet og dvalefunktionen fra tidsmodulet. Brug en for loop og gentag tqdm på dit ønskede område.





Rækkevidden kan være alt op til 9e9 (ni milliarder). Overfør antallet af sekunder til dvalefunktionen for at tilføje en forsinkelse, så du kan visualisere og se statuslinjen i aktion.

Du kan implementere en simpel statuslinje som denne:

from tqdm import tqdm 
from time import sleep

for i in tqdm(range(100)):
sleep(.1)

I stedet for at importere tqdm, kan du importere trange fra tqdm-modulet for at kombinere tqdm og range og sende parameteren direkte.

from tqdm import trange 
from time import sleep

for i in trange(100):
sleep(.1)

Det output, du får ved at oprette en simpel statuslinje, ser sådan ud:

  Simpel Progress Bar

Dette output inkluderer grafiske og tekstuelle versioner af fremskridtene sammen med tidsstatistikker.

hvor gammel er min macbook air

2. Statuslinje med beskrivelsestekst

Du kan tilføje en beskrivende etiket til statuslinjen for at forklare dens formål. Send den tekst, du vil vise, pakket ind i dobbelte anførselstegn som desc parameter:

for i in tqdm(range(0, 10), desc ="Progress: "): 
sleep(.4)

Det output, du opnår ved at tilføje en beskrivelsestekst sammen med statuslinjen, ser sådan ud:

  Statuslinje med tekst

3. Fremskridtslinje med tilpasset bredde

Som standard er bredden af ​​statuslinjen indstillet dynamisk til størrelsen af ​​outputvinduet. Du kan tilpasse det efter din smag ved hjælp af ncols parameter.

Du kan implementere en statuslinje med tilpasset bredde som:

for i in tqdm(range(0, 10), ncols = 100, desc ="Progress: "): 
sleep(.1)

Det output, du opnår ved at forlænge bredden af ​​statuslinjen, ser sådan ud:

  Statuslinje med beskrivelse og ncols

4. Statuslinje ved hjælp af farve

Du kan tilpasse farven på statuslinjen ved hjælp af farveparameteren. Du kan gøre dette på to måder:

  1. Farvenavn: Du kan bruge navnet på farven, såsom grøn, sort, cyan og mere.
  2. Hex kode: Hex-kode er et format hvori computeren gemmer farven. Du kan angive hex-farve med en hash (#) efterfulgt af 6 tegn i hexadecimal (0-9, a-f). Hex-koden #000000 repræsenterer sort, mens #ffffff repræsenterer hvid. Ved at variere intensiteten af ​​disse tal opnår du forskellige nuancer af farver. Du kan bruge Farvevælgerværktøj fra Google for at vælge og indsætte Hex Code-farven.

Du kan implementere en statuslinje med tilpassede farver som:

for i in tqdm(range(0, 100), colour="#00ffff", desc ="Progress: "): 
sleep(.1)

Det output, du får ved at ændre farven på statuslinjen:

  Fremdriftslinje med farve

5. Fremskridtslinje med minimumsinterval

Du kan oprette en fremskridtslinje, som opdateres med et minimumsinterval i stedet for standardindstillingen. Du kan sende et tal som 1,5 eller 2, der vil fungere som intervallet mellem to opdateringer. Standardværdien for minimumsintervallet er 0,1.

Du kan implementere en statuslinje med et minimumsinterval som:

for i in tqdm(range(0, 100), mininterval = 2, desc ="Progress: "): 
sleep(.1)

Det output, du opnår ved at angive et minimumsinterval til statuslinjen:

  Progresslinje med min interval

6. Statuslinje ved hjælp af ASCII-tegn

Du kan oprette en statuslinje ved hjælp af ASCII-tegn i stedet for de sædvanlige bjælker, som du ser på skærmen. For at bruge ASCII-tegn skal du indstille ascii parameter til det ønskede format.

Hvis du bruger noget som f.eks 12345* , hver af kolonnerne i området itererer fra én til stjerne sekventielt. Selvom det er sejt og kan tilpasses, skal du sørge for at bruge det brugervenligt, når du bruger det i rigtige applikationer.

Du kan implementere en statuslinje ved hjælp af ASCII-tegn som:

for i in tqdm(range(0, 100), ascii ="12345*"): 
sleep(.1)

Det output, du opnår ved at bruge ASCII-tegn i statuslinjen, ser sådan ud:

  Statuslinje med ASCII-tegn

7. Statuslinje ved hjælp af specificeret startpunkt

I stedet for at starte en statuslinje fra nul, kan du indstille et specifikt startpunkt for statuslinjen. Send en startværdi som 50 til initial parameter.

Du kan implementere en statuslinje ved hjælp af et specifikt startpunkt som:

Sådan fjernes hiberfil.sys Windows 10
for i in tqdm(range(0, 100), initial = 50, desc ="Progress: "): 
sleep(.1)

Det output, du opnår ved at starte statuslinjen på et bestemt tidspunkt:

  Statuslinje med initial parameter

8. Statuslinje med et specificeret antal gentagelser

Du kan oprette en statuslinje, der kører et bestemt antal iterationer. Hvis du vil køre 500 iterationer ud af 50.000, skal du videregive 500 som området og 50.000 som det samlede antal iterationer til i alt parameter.

Du kan implementere en statuslinje ved hjælp af et bestemt antal iterationer som:

for i in tqdm(range(0, 500), total = 50000, desc ="Progress: "): 
sleep(.1)

Det output, du opnår ved hjælp af en statuslinje med et specificeret antal iterationer:

  Statuslinje med specificeret antal iterationer

Anvendelser af Progress Bar

Du vil se fremskridtsbjælker i forskellige situationer, såsom afspilning af en medieafspiller eller visning af trinene gennem en onlineformular.

Mens en statuslinje ser æstetisk ud, gør den et vigtigt stykke arbejde med at give feedback til brugeren, hvis de ikke ville forlade hjemmesiden.