PyCharm print end ='\ r'语句不起作用

Han*_*nah 11 python pycharm

关于print语句已经有很多其他问题,但我没有找到问题的答案:

当我做:

for idx in range(10):
    print(idx, end="\r")
Run Code Online (Sandbox Code Playgroud)

在(ipython)终端直接,它工作正常,并始终覆盖前一行.但是,在使用PyCharm的模块中运行时,我看不到stdout中打印的任何行.

这是一个已知的PyCharm问题吗?

小智 10

尝试:

    for idx in range(10):
        print('\r', idx, end='')
Run Code Online (Sandbox Code Playgroud)

回车在前面,并以''结束,以避免换行'\n'.避免空间的一种解决方案是使用格式约定:

    for idx in range(10):
        print("'\r{0}".format(idx), end='')
Run Code Online (Sandbox Code Playgroud)


小智 6

我遇到过同样的问题。尽管使用print()的解决方案让我望而却步,但我发现sys.stdout.write可以正常工作。(Win10,Python 3.5.1,Pycharm 2016.3.2)

import sys
import time

def countdown(n):
    for x in reversed(range(n)):
        sys.stdout.write('\r' + str(x))
        time.sleep(1)

countdown(60)
Run Code Online (Sandbox Code Playgroud)