有没有一种方法可以删除Python IDLE中的输出

时间:2020-09-23 07:26:45

标签: python python-idle

我在这里有一个疑问,我在Windows 7 64位上使用Python IDLE 3.8.5 [MSC v.1926 32位(Intel)]。

我想创建一个倒数计时器,但是使用以下代码:

for sec in range(10) :
    print(sec + 1)

输出为: 1个 2 3 4 5 6 7 8 9 10

我想要的是:

1 #erases output and then prints 2 and so on

我该如何解决?

我已经尝试从互联网上通过以下方法使堆栈本身溢出:

1.Ansi代码:-('\ 033c'),('\ x1bc')

2.system('cls')和'clear'(先显示cmd然后退出)

3.sys.stdout.flush

4.subprocess调用系统('cls')和'clear'

5.Ansi代码:-'\ x1b [1A')

#delete last line
sys.stdout.write('\x1b[2K')

6。使用('\ r')和('\ b')

请帮助我,如果你们告诉我解决方案,这对我会很有用。

2 个答案:

答案 0 :(得分:0)

如果您在Windows上,请尝试此操作

import time
import os


for sec in range(10):
   os.system('CLS')
   print(sec+1)
   time.sleep(2)

答案 1 :(得分:0)

如果编写一个终端应用程序,则为“ NO”。当前,必须在终端窗口中测试此终端行为。

IDLE Shell是GUI应用程序,当前不尝试模仿终端。 (例如,这就是为什么人们可以编写,提交和调用多行语句的原因。)有人在讨论以某种方式使“某些” ANSI代码“起作用”,但没有达成协议。

我想提供在系统终端中运行代码的选项,但这需要更多的实验。

如果编写tkinter应用程序,则有一个Progressbar小部件。