【发布时间】:2014-07-24 23:45:30
【问题描述】:
我正在尝试在完全相同的位置打印:
for i in range(10):
print("ok\r"),
但是,这会在不同的行中打印 10 个 ok:
ok
ok
...
我也尝试将 \r 放在字符串的前面。在这种情况下,我得到一个空行,然后 10 oks:
[blank]
ok
ok
...
我也尝试了以下
import sys
for i in range(10):
sys.stdout.write('ok\r')
sys.stdout.flush()
但我得到了同样的结果。我在 pyscripter 中使用 Python 2.7,我做错了什么?我也试过IDLE,'okokokokokokokokokokok'是\r在最后的结果,'ok ok ok ok ok ok ok ok ok ok'是在前面的结果。
编辑:我在 Windows 7 上
非常感谢任何帮助!
【问题讨论】:
-
pyscripter 可能对控制台输出做了一些花哨的事情并且不尊重
\r或者你在出错的窗口上 -
你的意思可能是
\b而不是\r;如果是这种情况,您应该这样做, end='' -
@PadraicCunningham
print函数被反向移植到 py2.7:from __future__ import print_function,所以你仍然可以使用, end='' -
我在windows上,这是否意味着\r和\b不起作用?
-
@JakobBowyer 我在 IDLE 上遇到了同样的问题,@PadraicCunningham 我尝试从
__future__导入,然后使用print('ok\r',end=''),但仍然连续获得 10 次成功。