[=============>] mit Python animieren?
Hallo,
ich bin noch relativ unerfahren in Python.
Ich habe schon diverse "Progrämmchen" geschrieben.
Mich würde es interessieren, ob man mit Python wie in der Linux-Konsole einen Pfeil "animieren" kann. Also dass der Pfeil sich nacheinander aufbaut.
Schritt 1: [==
Schritt 2: [====
Schritt 3: [======
...
Schritt 4: [==========================================>]
wäre cool, wenn mir jemand ein Codebeispiel zeigen könnte, oder auch so erklären, wenn es relativ einfach ist.
Danke schon mal im Vorraus!
3 Antworten
klar
##python dingi
import time
import os
print ("=")
time.sleep(1)
os.sytem("clear")
print ("==")
time.sleep(1)
os.sytem("clear")
print ("===")
time.sleep(1)
os.sytem("clear")
print ("====")
time.sleep(1)
os.sytem("clear")
print ("====>")
geht mit einer for schleife warscheinlich einfacher aber egal
(sry für nachbearbeitung)
Ich weiß wie sowas in Java geht, müsste ja bei Python recht ähnlich sein. Hierfür solltest du eine For-Schleife verwenden. Je nach anzahl der Durchläufe, wird immer ein "=" angehangen. Entweder mit out.print() oder mit einem Stringbuilder. Von Außen kannst du dann mehrere Parameter übergeben, aber für den Anfang geht es auch erstmal ohne.
Falls dies ein Ladebalken darstellen soll, muss dieser ein eigener Thread sein, sonst bringt so ein Balken nichts.
Unter Linux unterstützen alle Terminals in der Regel Steuercodes und genau damit machst Du das.
Du schreibst Die Ausgabe aufs Terminal z.B. [= dann sendest Du den Steuercode, um den Cursor an den Anfang der Zeile zu setzen, dann schreibt Du den String für den neuen Zustand, usw. usf. .
Trivialbeispiel:
def progressbar(percent,src):
bar=' ' * (20*percent/100)
space=' ' * (20-len(bar))
sys.stdout.write("\033[s\033[?25l%s [\033[7m%s\033[0m%s] [%2s%%]\033[u" % (src,bar,space,percent))
Hier wird mit speichern der Cursor-Position gearbeitet.
[s - save Cursor
[u - restore Cursor Position
Es gibt aber verschiedene Möglichkeiten.