Python:使用 \r 在相同位置打印无效?
我想在同一个地方打印内容:
for i in range(10):
print("ok\r"),
但是,这样打印出来的10个“ok”却在不同的行上:
ok
ok
...
我试着把\r放在字符串的前面。这样的话,我得到的是一行空白,然后是10个“ok”:
[blank]
ok
ok
...
我还尝试了以下方法:
import sys
for i in range(10):
sys.stdout.write('ok\r')
sys.stdout.flush()
但结果还是一样。我在Python 2.7的pyscripter上,可能哪里出错了?我在IDLE中也试过,结果是当\r在字符串末尾时,输出是'okokokokokokokokokok',而当它在前面时,输出是' ok ok ok ok ok ok ok ok ok ok'。
补充:我用的是Windows 7。
非常感谢任何帮助!
2 个回答
0
对于Python 2:
from __future__ import print_function
import time
import sys
for i in range(10):
print('ok', end="\r")
sys.stdout.flush()
time.sleep(1)
这是我之前写的一个代码片段。
对于Python 3,下面这一行就不需要了:
from __future__ import print_function
6
试试下面的代码,这段代码在ubuntu系统上可以运行。我加了一个time.sleep的调用,这样你可以看到实际发生了什么:
import time
for i in range(10):
print(str(i),end='\r')
time.sleep(.4)