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

ubof19bj  于 2023-01-20  发布在  PyCharm
关注(0)|答案(2)|浏览(316)

关于print语句已经有很多其他的问题了,但是我还没有找到我的问题的答案:
当我这样做:

for idx in range(10):
    print(idx, end="\r")

直接在(ipython)终端中运行,它工作正常,总是覆盖前一行,但是,当在带有PyCharm的模块中运行时,我没有看到在stdout中打印任何行。
这是已知的PyCharm问题吗?

fhg3lkii

fhg3lkii1#

尝试将\r添加到打印字符串的开头(而不是结尾):

for idx in range(10):
    print('\r', idx, end='')

在前面回车,并以''结尾以避免新行'\n'。避免空格的一个解决方案是使用格式约定:

for idx in range(10):
    print("'\r{0}".format(idx), end='')
zynd9foi

zynd9foi2#

我也遇到过同样的问题,虽然我没有找到使用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)

相关问题