我一直在尝试在 python 上找到一种在同一行和列上从 1 移动到 9 的方法。
我想要这样的输出:1 然后它很清楚屏幕然后它将在与 1 相同的位置打印 2。
这甚至可能吗?
PS我是菜鸟蟒蛇。
我一直在尝试在 python 上找到一种在同一行和列上从 1 移动到 9 的方法。
我想要这样的输出:1 然后它很清楚屏幕然后它将在与 1 相同的位置打印 2。
这甚至可能吗?
PS我是菜鸟蟒蛇。
如果您不能使用更高级的机制(如ANSI 转义码)来控制光标定位,则始终可以使用 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
模块提供了更高级的定位机制。
你的意思就像我们在下载和安装软件包时看到的那样吗?没有位置移动的百分比变化?
试试这样的:</p>
import sys
import time
for i in range(1,10):
sys.stdout.write('%d\r' %i)
sys.stdout.flush()
time.sleep(1)