2017-11-09 2 views
2

Ich habe N Prozesse erzeugt und deren Status überwacht. Also würde ich gerne N Zeilen auf dem Bildschirm mit wechselnden Status auf jedem drucken.Wie aktualisiert man N Zeilen auf dem Bildschirm mit Python?

Wie geht das mit Python?

Ich möchte nicht vibible re-Drucke. Gibt es eine Bibliothek wie tqdm für solche Updates? Escape-Codes mit ein paar Terminal tun dies

+0

Hast du dir Pythons Fluch Tutorial angeschaut? https://docs.python.org/3/howto/curses.html – kay

Antwort

0

Sie können:

def up(lines=1): 
    clearline = '\033[2K' # clear a line 
    upline = '\033[1A' # Move cursor up a line 
    for _ in range(lines): 
     sys.stdout.write(upline) 
     sys.stdout.write(clearline) 

Danach Sie Ihre Statuszeilen erneut drucken können. Und dann:

sys.stdout.flush() 

Hier ist ein volles Arbeitsprogramm demonstriert dies:

import sys 
from time import sleep 

def up(lines=1): 
    clearline = '\033[2K' # clear a line 
    upline = '\033[1A' # Move cursor up a line 
    for _ in range(lines): 
     sys.stdout.write(upline) 
     sys.stdout.write(clearline) 

num_lines = 3 
for i in range(10): 
    for l in range(num_lines): 
     sys.stdout.write('{} hello\n'.format(i*l+i)) 
    sys.stdout.flush() 
    sleep(0.5) 
    up(num_lines) 

Natürlich, wenn Sie eine vollständige geblasene tui machen, werden Sie wollen so etwas wie Flüche benutzen oder urwid

Verwandte Themen