我对Python很非常新,我想知道如何清除已打印的文本并添加另一段文字。例如,我想显示“Hello”然后程序延迟10秒,用另一个文本“Goodbye”替换文本。我在Windows 7上使用Python 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
函数,它可以为您完成所有操作。