import time
import curses
win = curses.initscr()
for i in range(100):
win.clear()
win.addstr("You have finished %d%%"%i)
win.refresh()
time.sleep(.1)
curses.endwin()
import time
import curses
curses.initscr()
rows = 10
cols= 30
winlist = []
for r in range(2):
for c in range(2):
win = curses.newwin(rows, cols, r*rows, c*cols)
win.clear()
win.border()
winlist.append(win)
for i in range(100):
for win in winlist:
win.addstr(5,5,"You have finished - %d%%"%i)
win.refresh()
time.sleep(.05)
curses.endwin()
Python3
您可以使用关键字参数来
print
:print('string', end='\r', flush=True)
end='\r'
用'\r'
替换默认的行尾行为flush=True
刷新缓冲区,使打印文本立即显示。Python2
在2.6+中,可以在脚本的开头使用^{} 来启用Python 3行为。或者用老办法:
Python的
print
在每个命令后面都放一个换行符,除非用一个尾随逗号来抑制它。因此,print命令是:注意末尾的逗号。
不幸的是,Python只在完成一行之后将输出发送到终端。以上不是完整的行,因此需要手动
flush
:在linux上(可能在windows上)可以使用这样的curses模块
与其他更简单的技术一样,使用curses的Benfit可以像图形程序一样在终端上绘制,因为curses可以移动到任何x,y位置,例如下面是一个简单的脚本,它可以更新四个视图
\r
是回车。为了避免自动换行,需要在print
语句的末尾使用逗号。最后需要sys.stdout.flush()
将缓冲区刷新到stdout。对于Python3,可以使用:
相关问题 更多 >
编程相关推荐