关于print语句已经有很多其他的问题了,但是我还没有找到我的问题的答案:当我这样做:
for idx in range(10): print(idx, end="\r")
直接在(ipython)终端中运行,它工作正常,总是覆盖前一行,但是,当在带有PyCharm的模块中运行时,我没有看到在stdout中打印任何行。这是已知的PyCharm问题吗?
fhg3lkii1#
尝试将\r添加到打印字符串的开头(而不是结尾):
\r
for idx in range(10): print('\r', idx, end='')
在前面回车,并以''结尾以避免新行'\n'。避免空格的一个解决方案是使用格式约定:
for idx in range(10): print("'\r{0}".format(idx), end='')
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)
2条答案
按热度按时间fhg3lkii1#
尝试将
\r
添加到打印字符串的开头(而不是结尾):在前面回车,并以''结尾以避免新行'\n'。避免空格的一个解决方案是使用格式约定:
zynd9foi2#
我也遇到过同样的问题,虽然我没有找到使用print()的解决方案,但我发现sys.stdout.write工作得很好(Win10,Python 3.5.1,Pycharm 2016.3.2)。