[=============>] mit Python animieren?

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)

Woher ich das weiß:Hobby – Ein großes Hobby von mir

soltest du noch fragen haben kanste gerne fragen

1

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.

Woher ich das weiß:Hobby – PC seit den frühen 90ern

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.