ProgressBar in Python 2

» home «

Dictionarys in Python sind vergleichbar mit ARRAYs anderer Programmiersprachen, vorzugsweise speichern Dictionarys in Python allerdings Key:Value-Paare ab. Allerdings müssen dies unbedingt beachten.

Der folgende kleine Codeschnipsel zeigt die Implementierung einer ganz simplen Fortschrittsanzeige (ProgressBar) in Form eines ASCII-Balkens an der Konsole des Raspberry Pi (sicher auch unter Windows oder Mac).

001  import sys
002
003  def progress_bar():
004
005      for i in range(51):
006          sys.stdout.write('\r')
007          sys.stdout.write("[%-50s] %d%%" % ('#'*i, 2*i))
008          sys.stdout.flush()
009          time.sleep(0.1)
010      print '\n'
011
012  prograss_bar()

Führen Sie diesen Code aus, dann erhalten Sie in etwa das folgende Ergebnis an Ihrer Konsole:

[##################################################] 100%

In Zeile 005 legen Sie die Breite in Zeichen an der Konsole fest, in diesem Fall 50 x das Zeichen # (+/-1, da i bei 0 beginnt). Zeile 007 füllt den Balken pro Schleifen-Durchlauf mit einem # auf. Da 100% bei voll erreicht werden sollen, muss folglich die 50*2 multipliziert werden, um auch 100 statt 50 zu zeigen.

Ich setze diese Art der Progressbar dort ein, wo der User bestimmte Programmschritte abbrechen kann und ein wenig Zeit bekommt um dies zu tun. Ist die Zeit abgelaufen, so startet die betreffende Verarbeitung und das Programm läuft weiter. Er hat also eine Nachdenkzeit zum stoppen, ansonsten geht es normal weiter im Programm.

Tipp: Möchten Sie, das die ProgressBar in grün zu sehen ist, dann probieren Sie das folgende Coding aus:

003  def progress_bar():
004      NORMAL = '\033[0;39m'
005      GREEN  = '\033[1;32m'
006      for i in range(51):
007          sys.stdout.write('\r')
008          sys.stdout.write(GREEN + "[%-50s] %d%%" % ('#'*i, 2*i))
009          sys.stdout.flush()
010          time.sleep(0.1)
011      print NORMAL + '\n'

Auf der Konsole des Raspberry Pi 3 B+ erhalte ich eine schöne grüne Darstellung der PrograssBar. In Zeile 004 und 005 legen Sie die grüne Farbe für den Balken fest und schalten am Ende der Schleife wieder auf den normalen Farbmodus der Bash zurück. In Zeile 008 wird zu Beginn der Ausgabe auf grün umgeschaltet.

Oliver Lohse   •  3.Jan.2021

Navigation


home
Omega 2
ESP32 NodeMCU
Arduino
Raspberry Pi
Python
PHP

Es geht um den heißem Scheiß über den alle reden - IoT (das Internet der Dinge). Doch zunächst der rechtliche Teil auf dieser rein privat betriebenen Webseite.

Die Webseite verwendet keine Cookies oder sonstigen Tracking-Tools, um das Leserverhalten zu speichern.

Dictionarys in Python nutzen


Dictionarys in Python sind vergleichbar mit ARRAYs anderer Programmiersprachen, vorzugsweise speichern Dictionarys in Python allerdings Key:Value-Paare ab. Allerdings müssen dies unbedingt beachten.

SocialCounter Raspberry Pi


Mit Hilfe von Python, dem SenseHAT und dem Befehl `requests.get()` aus der Python-Bibliothek ist es möglich, einen Social Counter für Instagram zu realisieren. Das Ergebnis wird als Ticker auf einer 8x8 LED Matrix angezeigt.


© by O.Lohse • Impressumhome