如何在延迟后替换屏幕上的文字?

时间:2014-12-08 22:32:20

标签: python windows replace delay clear

我对Python很非常新,我想知道如何清除已打印的文本并添加另一段文字。例如,我想显示“Hello”然后程序延迟10秒,用另一个文本“Goodbye”替换文本。我在Windows 7上使用Python 3.3。

3 个答案:

答案 0 :(得分:1)

import time
import os

print ('hello there')
time.sleep(10) # this will BLOCK your program for 10 seconds
os.system('cls') # clear the screen, since cls is the clear screen command for windows
print ('bye')
input() # this is to wait to user to enter something to exist

版本2,使用了一些' visual'效果:D

import time
import os

print ('hello there')
for i in range(1, 10):
    time.sleep(1)
    print ('.')
os.system('cls')
print ('bye')
input()

答案 1 :(得分:0)

一旦将文本发送到stdout,确实没有一个好方法来改变它。您可能想要做的是需要一个UI库,如tkinter(Python附带)或wxPython。然后,您可以创建一个带有标签小部件的窗口,该小部件可以每隔几秒更改您也许可以使用Python的curses library,但是我还没有看到关于如何将其用于此类事情的连贯教程。

答案 2 :(得分:0)

Python的输出是基于“输出只是一个你可以写的文件”的抽象,所以没有办法做这个跨平台。

但是,如果您希望它在Windows cmd.exe控制台(又名“DOS提示符”)中工作,并且不关心在IDLE内部,在Unix上,通过网络等工作,您可以使用MSVCRT控制台I / O API。

不幸的是,有限的console I/O APIs built into the standard library集不包括明确的功能。但您可以在PyPI上查找第三方扩展控制台I / O库,或使用PyWin32直接调用MSVCRT函数。

或者你可以使用便宜的黑客:

import subprocess
subprocess.check_call(['cls'])

这只是调用cls函数,它可以为您完成所有操作。