Δημιουργήστε μια γραμμή προόδου στο Python CLI

Δημιουργήστε μια γραμμή προόδου στο Python CLI

Κάθε φορά που κατεβάζετε ένα αρχείο ή ξεκινάτε ένα παιχνίδι, βλέπετε ένα αισθητικό κινούμενο σχέδιο που ενημερώνεται μέχρι να ολοκληρωθεί. Αυτή είναι μια γραμμή προόδου. Η γραμμή προόδου είναι ένα γραφικό στοιχείο που χρησιμοποιείται για την οπτικοποίηση της προόδου μιας εργασίας, όπως η λήψη, η μεταφόρτωση ή η μεταφορά αρχείων.





Υπάρχουν δύο τύποι ράβδων προόδου: καθορισμένη και απροσδιόριστη. Οι γραμμές προσδιορισμού προόδου παρακολουθούν την πρόοδο μιας εργασίας με την πάροδο του χρόνου. Οι απροσδιόριστες γραμμές προόδου εκτελούνται απεριόριστα με μια κινούμενη εικόνα σε βρόχο.





ΚΑΤΑΣΚΕΥΗ ΒΙΝΤΕΟ ΤΗΣ ΗΜΕΡΑΣ

Λοιπόν, πώς μπορείτε να δημιουργήσετε μια καθορισμένη γραμμή προόδου σε ένα πρόγραμμα Python CLI;





Τι είναι η ενότητα tqdm;

Το tqdm είναι μια ενότητα που συντηρείται κυρίως από τον Casper da Costa-Luis μαζί με δέκα άλλα μέλη. Το tqdm προέρχεται από την αραβική λέξη taqaddum που μπορεί να σημαίνει 'πρόοδος' και είναι συντομογραφία του 'σ' αγαπώ τόσο πολύ' στα ισπανικά (te quiero demasiado).

Χρησιμοποιώντας τη μονάδα tqdm, μπορείτε να δημιουργήσετε μια ελκυστική, λειτουργική γραμμή προόδου στο τερματικό σας. Για να εγκαταστήσετε τη λειτουργική μονάδα tqdm, ανοίξτε το τερματικό σας και εκτελέστε:



pip install tqdm

Τι είναι η ενότητα ώρας;

Η τυπική βοηθητική μονάδα της Python περιλαμβάνει τη μονάδα χρόνου από προεπιλογή, οπότε δεν χρειάζεται να το εγκαταστήσετε. Μπορείτε να χρησιμοποιήσετε τη λειτουργία ύπνου που παρέχεται στη μονάδα χρόνου για να προσθέσετε καθυστέρηση στις εφαρμογές σας, η οποία θα σας βοηθήσει να οπτικοποιήσετε την πρόοδο της γραμμής.

Μπορείτε να χρησιμοποιήσετε τη μονάδα ώρας για να λάβετε την ημερομηνία και την ώρα, να προγραμματίσετε εργασίες και να δημιουργήσετε χρήσιμες εφαρμογές όπως α απλό ξυπνητήρι , ή ένα χρονόμετρο.





Πώς να προσθέσετε μια γραμμή προόδου και να την προσαρμόσετε

Η προεπιλεγμένη γραμμή προόδου είναι εύκολη στη χρήση και μπορείτε να την προσαρμόσετε με πολλές επιλογές.

1. Απλή γραμμή προόδου

Μπορείτε να δημιουργήσετε μια απλή γραμμή προόδου εισάγοντας την κλάση tqdm από τη μονάδα tqdm και τη συνάρτηση ύπνου από τη μονάδα χρόνου. Χρησιμοποιήστε έναν βρόχο for και επαναλάβετε το tqdm στο εύρος που θέλετε.





Το εύρος μπορεί να είναι οτιδήποτε έως 9e9 (εννέα δισεκατομμύρια). Περάστε τον αριθμό των δευτερολέπτων στη λειτουργία ύπνου για να προσθέσετε μια καθυστέρηση, ώστε να μπορείτε να οπτικοποιήσετε και να δείτε τη γραμμή προόδου σε δράση.

Μπορείτε να εφαρμόσετε μια απλή γραμμή προόδου όπως αυτή:

from tqdm import tqdm 
from time import sleep

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

Αντί να εισάγετε tqdm, μπορείτε να εισαγάγετε trange από τη λειτουργική μονάδα tqdm για να συνδυάσετε το tqdm και το εύρος και να μεταβιβάσετε απευθείας την παράμετρο.

from tqdm import trange 
from time import sleep

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

Το αποτέλεσμα που λαμβάνετε κατά τη δημιουργία μιας απλής γραμμής προόδου μοιάζει με αυτό:

  Απλή γραμμή προόδου

Αυτή η έξοδος περιλαμβάνει εκδόσεις γραφικών και κειμένου της προόδου, μαζί με στατιστικά χρονισμού.

2. Γραμμή προόδου με κείμενο περιγραφής

Μπορείτε να προσθέσετε μια περιγραφική ετικέτα στη γραμμή προόδου για να εξηγήσετε το σκοπό της. Περάστε το κείμενο που θέλετε να εμφανίσετε τυλιγμένο σε διπλά εισαγωγικά ως το περιγραφ παράμετρος:

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

Το αποτέλεσμα που λαμβάνετε όταν προσθέτετε ένα κείμενο περιγραφής μαζί με τη γραμμή προόδου μοιάζει με αυτό:

  Γραμμή προόδου με κείμενο

3. Γραμμή προόδου με προσαρμοσμένο πλάτος

Από προεπιλογή, το πλάτος της γραμμής προόδου ορίζεται δυναμικά στο μέγεθος του παραθύρου εξόδου. Μπορείτε να το προσαρμόσετε σύμφωνα με τις προτιμήσεις σας με τη βοήθεια του αρχ παράμετρος.

Μπορείτε να εφαρμόσετε μια γραμμή προόδου με προσαρμοσμένο πλάτος ως εξής:

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

Η έξοδος που λαμβάνετε με την επιμήκυνση του πλάτους της γραμμής προόδου μοιάζει με αυτό:

  Γραμμή προόδου με περιγραφή και ncol

4. Γραμμή προόδου με χρήση χρώματος

Μπορείτε να προσαρμόσετε το χρώμα της γραμμής προόδου χρησιμοποιώντας την παράμετρο χρώματος. Μπορείτε να το κάνετε αυτό με δύο τρόπους:

  1. Όνομα χρώματος: Μπορείτε να χρησιμοποιήσετε το όνομα του χρώματος όπως πράσινο, μαύρο, κυανό και άλλα.
  2. Hex Code: Ο δεκαεξαδικός κώδικας είναι μια μορφή στο οποίο ο υπολογιστής αποθηκεύει το χρώμα. Μπορείτε να υποδηλώσετε το Hex χρώμα με έναν κατακερματισμό (#) ακολουθούμενο από 6 χαρακτήρες σε δεκαεξαδικό (0-9, a-f). Ο δεκαεξαδικός κωδικός #000000 αντιπροσωπεύει το μαύρο ενώ το #ffffff αντιπροσωπεύει το λευκό. Μεταβάλλοντας την ένταση αυτών των αριθμών, αποκτάτε διαφορετικές αποχρώσεις χρωμάτων. Μπορείτε να χρησιμοποιήσετε το Εργαλείο επιλογής χρώματος από την Google για να επιλέξετε και να επικολλήσετε το χρώμα Hex Code.

Μπορείτε να εφαρμόσετε μια γραμμή προόδου με προσαρμοσμένα χρώματα ως εξής:

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

Η έξοδος που λαμβάνετε όταν αλλάζετε το χρώμα της γραμμής προόδου:

  Μπάρα προόδου με χρώμα

5. Γραμμή προόδου με ελάχιστο διάστημα

Μπορείτε να δημιουργήσετε μια γραμμή προόδου που προχωρά, η οποία ενημερώνεται με ένα ελάχιστο διάστημα αντί της προεπιλεγμένης ρύθμισης. Μπορείτε να περάσετε έναν αριθμό όπως 1,5 ή 2 που θα χρησιμεύσει ως το διάστημα μεταξύ δύο ενημερώσεων. Η προεπιλεγμένη τιμή του ελάχιστου διαστήματος είναι 0,1.

Μπορείτε να εφαρμόσετε μια γραμμή προόδου με ένα ελάχιστο διάστημα ως:

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

Η έξοδος που λαμβάνετε καθορίζοντας ένα ελάχιστο διάστημα στη γραμμή προόδου:

  Γραμμή προόδου με ελάχιστο διάστημα

6. Γραμμή προόδου με χρήση χαρακτήρων ASCII

Μπορείτε να δημιουργήσετε μια γραμμή προόδου χρησιμοποιώντας χαρακτήρες ASCII αντί για τις συνηθισμένες γραμμές που βλέπετε στην οθόνη. Για να χρησιμοποιήσετε χαρακτήρες ASCII, ορίστε το ascii παραμέτρου στην επιθυμητή μορφή.

Εάν χρησιμοποιείτε κάτι σαν 12345* , καθεμία από τις στήλες του εύρους επαναλαμβάνεται από τη μία έως τον αστερίσκο διαδοχικά. Ενώ είναι δροσερό και προσαρμόσιμο, φροντίστε να το χρησιμοποιείτε φιλικό προς το χρήστη όταν το χρησιμοποιείτε σε πραγματικές εφαρμογές.

η ταχύτητα του διαδικτύου ανεβοκατεβαίνει

Μπορείτε να εφαρμόσετε μια γραμμή προόδου χρησιμοποιώντας χαρακτήρες ASCII ως:

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

Η έξοδος που λαμβάνετε χρησιμοποιώντας χαρακτήρες ASCII στη γραμμή προόδου μοιάζει με αυτό:

  Γραμμή προόδου με χαρακτήρες ASCII

7. Γραμμή προόδου με χρήση καθορισμένου σημείου έναρξης

Αντί να ξεκινάτε μια γραμμή προόδου από το μηδέν, μπορείτε να ορίσετε ένα συγκεκριμένο σημείο εκκίνησης για τη γραμμή προόδου. Περάστε μια αρχική τιμή όπως 50 στο αρχικός παράμετρος.

Μπορείτε να εφαρμόσετε μια γραμμή προόδου χρησιμοποιώντας ένα συγκεκριμένο σημείο εκκίνησης ως:

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

Η έξοδος που λαμβάνετε κατά την εκκίνηση της γραμμής προόδου σε ένα καθορισμένο σημείο:

  Γραμμή προόδου με αρχική παράμετρο

8. Γραμμή προόδου με καθορισμένο αριθμό επαναλήψεων

Μπορείτε να δημιουργήσετε μια γραμμή προόδου που εκτελεί συγκεκριμένο αριθμό επαναλήψεων. Εάν θέλετε να εκτελέσετε 500 επαναλήψεις από τις 50000, περάστε 500 ως εύρος και 50000 ως συνολικό αριθμό επαναλήψεων στο σύνολο παράμετρος.

Μπορείτε να εφαρμόσετε μια γραμμή προόδου χρησιμοποιώντας έναν συγκεκριμένο αριθμό επαναλήψεων όπως:

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

Η έξοδος που λαμβάνετε χρησιμοποιώντας μια γραμμή προόδου με καθορισμένο αριθμό επαναλήψεων:

  Γραμμή προόδου με καθορισμένο αριθμό επαναλήψεων

Εφαρμογές της γραμμής προόδου

Θα δείτε γραμμές προόδου σε διάφορες καταστάσεις, όπως η αναπαραγωγή ενός προγράμματος αναπαραγωγής πολυμέσων ή η εμφάνιση των βημάτων μέσω μιας ηλεκτρονικής φόρμας.

Αν και μια γραμμή προόδου φαίνεται αισθητική, κάνει μια σημαντική δουλειά παρέχοντας σχόλια στον χρήστη, εάν δεν υπήρχε η οποία θα έφευγε από τον ιστότοπο.