关于打印语句,已经有很多其他问题,但我没有找到解决我的问题的答案:
当我执行以下操作时:
for idx in range(10):
print(idx, end="\r")
在(ipython)终端中,它可以直接运行并且始终覆盖前一行。然而,在PyCharm的模块中运行时,我看不到任何输出到标准输出的行。
这是一个已知的PyCharm问题吗?
尝试在您打印的字符串开头添加\r
(而不是结尾):
for idx in range(10):
print('\r', idx, end='')
Carriage return在前面,并以''结尾以避免新行符'\n'。避免空格的一种解决方案是使用格式约定:for idx in range(10):
print("'\r{0}".format(idx), end='')
我曾经遇到过同样的问题。虽然使用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)
print(..., flush=True)
- tobias_kimport sys; print(sys.version)
时,会显示什么? - tobias_kflush=True
的组合对我有用。 - Aemyl