我试图在完全相同的地方打印:
for i in range(10):
print("ok\r"),
Run Code Online (Sandbox Code Playgroud)
但是,这会在不同的行中打印 10 个 ok:
ok
ok
...
Run Code Online (Sandbox Code Playgroud)
我也尝试将 \r 放在字符串的前面。在这种情况下,我得到一个空行然后 10 oks:
[blank]
ok
ok
...
Run Code Online (Sandbox Code Playgroud)
我也尝试了以下
import sys
for i in range(10):
sys.stdout.write('ok\r')
sys.stdout.flush()
Run Code Online (Sandbox Code Playgroud)
但我得到了同样的东西。我在 pyscripter 中使用 Python 2.7,我做错了什么?我也在 IDLE 中尝试过,当 \r 在末尾时,'okokokokokokokokok' 是结果,'ok ok ok ok ok ok ok ok' 是它在前面时的结果。
编辑:我在 Windows 7
任何帮助表示高度赞赏!
试试下面的代码,它适用于 ubuntu,我添加了一个 time.sleep 调用,这样你就可以看到实际发生了什么:
import time
for i in range(10):
print(str(i),end='\r')
time.sleep(.4)
Run Code Online (Sandbox Code Playgroud)
对于蟒蛇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)
Run Code Online (Sandbox Code Playgroud)
根据我不久前写的要点。
对于python 3,不需要以下行:
from __future__ import print_function
Run Code Online (Sandbox Code Playgroud)