Seite 1 von 1

Command Line Echtzeit Update

Verfasst: Freitag 7. Mai 2010, 08:54
von mzh
Hallo zusammen
Ich schreibe gerade an einer kleinen Molekülsimulation. Das kann zwischendurch mal eine Weile dauern bis das ganze Zeug berechnet ist. In dieser Zeit zeige ich mir alle möglichen Werte in der Shell an (print energy, etc). Dh. da ruckeln tausende von Zahlen über den Bildschirm und jetzt habe ich mich gefragt, ob es irgendwie möglich ist, dass ich nur eine Zahl anzeige, diese sich aber im Laufe der Simulation verändert.
So könnte ich mir auch zwei Werte gleichzeitig anzeigen lassen, was mir im Moment nicht möglich ist (bspw. Energie und Simulationszeit, Verteilungsfunktionen, etc).

Wie kann man das machen?

Verfasst: Freitag 7. Mai 2010, 09:09
von snafu
Dafür musst du direkt auf dem Ausgabestrom arbeiten:

Code: Alles auswählen

from time import sleep
from sys import stdout

def test():
    for i in xrange(31):
        stdout.write('\r%d' % i)
        stdout.flush()
        sleep(.2)
    stdout.write('\n')
Wichtig ist `flush`, damit die Ausgabe sofort angezeigt wird.

Verfasst: Freitag 7. Mai 2010, 09:16
von mzh
Sehr cool, danke schön.
Da hab ich gleich ein paar neue Sachen zum ausprobieren.