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.
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 installere 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ækkeureller 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. Simpel Progress Bar
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:
fra tqdm importere tqdm
fra tid importere søvn
for i i tqdm (område (100)):
søvn(.1)
I stedet for at importere tqdm, kan du importere trange fra tqdm-modulet for at kombinere tqdm og range og sende parameteren direkte.
fra tqdm importere underligt
fra tid importere søvn
for i trange (100):
søvn(.1)
Det output, du får ved at oprette en simpel statuslinje, ser sådan ud:
Dette output inkluderer grafiske og tekstuelle versioner af fremskridtene sammen med tidsstatistikker.
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 i tqdm (område (0, 10), desc ="Fremskridt: "):
søvn(.4)
Det output, du opnår ved at tilføje en beskrivelsestekst sammen med statuslinjen, ser sådan ud:
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 i tqdm (område (0, 10), ncols = 100, desc ="Fremskridt: "):
søvn(.1)
Det output, du opnår ved at forlænge bredden af statuslinjen, ser sådan ud:
4. Fremskridtslinje 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:
- Farvenavn: Du kan bruge navnet på farven, såsom grøn, sort, cyan og mere.
- 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 i tqdm (område (0, 100), farve="#00ffff", desc ="Fremskridt: "):
søvn(.1)
Det output, du får ved at ændre farven på statuslinjen:
5. Progress Bar med minimum interval
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 i tqdm (område (0, 100), mininterval = 2, desc ="Fremskridt: "):
søvn(.1)
Det output, du opnår ved at angive et minimumsinterval til statuslinjen:
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 i tqdm (område (0, 100), ascii ="12345*"):
søvn(.1)
Det output, du opnår ved at bruge ASCII-tegn i statuslinjen, ser sådan ud:
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:
for i i tqdm (område (0, 100), initial = 50, desc ="Fremskridt: "):
søvn(.1)
Det output, du opnår ved at starte statuslinjen på et bestemt tidspunkt:
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 Total parameter.
Du kan implementere en statuslinje ved hjælp af et bestemt antal iterationer som:
for i i tqdm (område (0, 500), total = 50000, desc ="Fremskridt: "):
søvn(.1)
Det output, du opnår ved hjælp af en statuslinje med et 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.