为什么clear_output()无法清除VS代码中打印到python控制台的内容?

时间:2019-12-20 12:22:29

标签: python-3.x visual-studio-code ipython

编程新手,目前正在使用网络刮板。我正在尝试监视自己的进度,并在使用IPython.display的clear_output()时保持终端清洁,但似乎并未清除VSCode中的输出。这是一个示例:

200x200

我希望它可以清除x的先前值来代替新值,但事实并非如此。程序完成后,我的输出将更改为:

from time import sleep
from IPython.display import clear_output

x = 0
while x < 5:
    x += 1
    sleep(.2)
    print(x)
    clear_output(wait=True)

猜测是IPython提供的,但是我不确定它的含义或解决方法。感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我不确定这是否是您要的内容,但是您可以尝试使用sys库:

from time import sleep
from sys import stdout
for i in range(0, 1000):
    stdout.write("\b")  # \b for backspace, you may need \r depends on  system
    sleep(.9)
    stdout.write("\b\b\b>>>" + str(i))
    stdout.flush()

对我来说输出是:

>>>1

然后将1替换为2

>>>2

2替换为3等。

我睡着了,这样您可以看到会发生什么,如评论中所述,您可能需要将\ b更改为\ r或两者的某种组合

答案 1 :(得分:0)

clear_output() 仅适用于Jupyter。考虑使用 print('\ n' 100) 清除其他IDE中的输出。