sys.stdout.write和\ rr回车不起作用

时间:2014-02-28 17:04:41

标签: python python-2.7 stdout carriage-return

我正在学习一些教程,经过大量研究后,我无法弄清楚为什么给定的代码不能在同一行上打印。我直接复制了它,所以它应该可以工作。

import time
import sys
sys.stdout.write('29 seconds remaining')
time.sleep(1)
sys.stdout.write('\r28 seconds remaining')

输出是:

29 seconds remaining
28 seconds remaining

最终输出应为:

28 seconds remaining

2 个答案:

答案 0 :(得分:0)

我把“\ r”放在行尾,而不是前面。像这样:

 sys.stdout.write("%s[%s%s] %2i/%i\r" % (variables go here))
 sys.stdout.flush()

答案 1 :(得分:0)

尝试出像我这样的设置似乎适用于其他人的解决方案后,我不得不找出输出打印字符串的shell解析回车序列的难点(如果不够精确,请在这里纠正我)。当我意识到Windows命令提示符(C:\ Windows \ System32 \ cmd.exe)实际上按预期解释了回车符时,我开始接近解决方案,但PyScripter IDE没有。然后我意识到PyScripter开发人员对此有了新的认识,但不想花费精力模仿cmd.exe的行为。

希望这会让开发人员朝着正确的方向前进并节省一些时间。