chet
Просто стало интересно, можно ли так сделать?
Например, хочу вывести на экран ход выполнения проги в процентах.
То есть можно ли перезаписать print определенной переменной в предыдущей итерации?
Есть замечательная вещь, называется curses
Держи, дарю, пригодится
import curses, time
class ProgressBar(object):
def __init__(self, start_string, bar_char, width):
curses.initscr()
self.width=width+len(start_string)
self.win = curses.newwin(3,self.width+30,14,10)
self.win.border(0)
self.win.addstr(1,1, '%s ' % start_string)
self.pos=len(start_string)+2
self.bar_char=bar_char
def show_progress(self):
self.win.addstr(1,self.pos, self.bar_char)
self.win.refresh()
self.pos += 1
def stop(self, end_string):
self.win.addstr(1,self.width, end_string)
self.win.refresh()
self.win.addstr(1,self.width+len(end_string), 'Press any key')
self.win.refresh()
self.win.getch()
curses.endwin()
progress=ProgressBar('Process in progress','#', 20)
for i in range(10000):
if not i%500:
progress.show_progress()
time.sleep(0.1)
progress.stop("Ok!")