Portál AbcLinuxu, 10. května 2025 01:55
import sys import time from blessings import Terminal term = Terminal() with term.location(0, term.height - 4): print 'Here is the bottom.' for x in range(0,100): print xOno to vypíše "Here is the bottom" ale následne sa to posúva hore.... ja chcem niečo ako subkonzolu, teda aby sa iba časť terminalu spravala ako terminal....
import sys import time for i in xrange(0,10): sys.stdout.write("\r Processing "+str(i)) time.sleep(1) sys.stdout.flush()
for x in range(0,100): print x time.sleep(1)a nad nim je horny nemený riadok s textom "pocítam"... dá sa to s tvojim kodom?
isatty()
.
Vetsina linuxovych utilit ktere si hraji na hezky vystup kombinuje oboji – statove info se bleje na stderr, pokud je tento na terminal tak se pomoci "\r" hacku delaji progressbary, tocaky a podobne volovinky. V pythonu je to par radek kodu – 0% curses, 100% funkce if sys.stderr.istatty() and os.environ["TERM"] in ("xterm", "xterm-color", "rxvt"): logger = lambda s: sys.stderr.write("\x1b]2;"+ s +"\x07") else: logger = lambda s: sys.stderr.write(s + "\n")
(nejaky-ten-script 2>&1 >output.log ; killall watch) & watch "cat soubor-se-statistikama ; tail -n 20 output.log"Přičemž si tam budeš do
soubor-se-statistikama
poznamenávat nějaký info o postupu (co pár sekund). Sice výpis bude jen takový cukaný náhled, ale pojede to hodně rychle.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.