在同一个ln和col中改变数字

时间:2013-05-10 03:03:39

标签: python

我已经尝试了一段时间,在python上找到一种方法,在同一行和列上从1移动到9。

我想要这样的输出:1然后它很好地清除屏幕然后它将在与1相同的位置打印2。

这可能吗?

P.S。我是一个菜鸟蠢货。

2 个答案:

答案 0 :(得分:0)

如果您不能使用更高级的机制(如ANSI escape codes)来控制光标定位,您可以使用ASCII退格和/或回车来伪造它。退格(\b)将返回同一行的一个位置,回车符(\r)将返回到行的开头。

以下代码段会输出1到9之间的数字,其间的暂停时间为半秒:

import sys
from time import sleep

for i in range(1, 10):
    print '{0}\r'.format(i),
    sys.stdout.flush() # manual flush because we aren't writing newlines
    sleep(.5)

如果您需要,curses模块可提供更高级的定位机制。

答案 1 :(得分:0)

您的意思是我们在下载和安装软件包时看到的内容吗?没有位置的百分比变化在线上移动?

尝试这样的事情:

import sys
import time
for i in range(1,10):
    sys.stdout.write('%d\r' %i)
    sys.stdout.flush()
    time.sleep(1)