开发者

Python: simple CLI GUI

开发者 https://www.devze.com 2022-12-19 16:02 出处:网络
A simple question on a python module. Let\'s say I have the following code: for i in range(1000): print i

A simple question on a python module. Let's say I have the following code:

for i in range(1000):
  print i

I开发者_运维知识库t'll output something along the lines of:

1

2

'Snip'

999

Is it possible to have the program output all the numbers on the same line? I'm not talking about "1, 2, 3 .." rather I want the line value to change to the current i


If you want the character to be overwritten/replaced each time, you may need to use a terminal control library like 'curses'. Here's a Python how-to article to get you started.


If you want to draw a GUI inside a terminal, you'll have to use the curses module.


For a simple case the following code works just fine:

sys.stdout.write(str(i)+'\r')
sys.stdout.flush()


import os

for i in range(1000):
  print i
  os.system("clear")

edit: as mentioned in the comment below, change "clear" to "cls" if using windows.


Text printed to stdout can't be dynamically changed. You need to use a panel.

http://docs.python.org/library/curses.panel.html

Initialize a new panel, and then use Panel.set_userptr(obj) in your loop.

0

精彩评论

暂无评论...
验证码 换一张
取 消