我有一个非常简单的脚本。在手动停止脚本之前,它会每隔1秒钟在终端上打印当前时间。到目前为止,我唯一遇到的问题是回车符“\r”命令不能按预期工作,无法返回并使用以前的同一行。每次输出的时间不会被覆盖,而是像这样:
Good morning!
It's 03:10:13 PM on Wednesday, Jan 25, 2017
It's 03:10:14 PM on Wednesday, Jan 25, 2017
It's 03:10:15 PM on Wednesday, Jan 25, 2017
It's 03:10:16 PM on Wednesday, Jan 25, 2017
It's 03:10:17 PM on Wednesday, Jan 25, 2017
It's 03:10:18 PM on Wednesday, Jan 25, 2017
It's 03:10:19 PM on Wednesday, Jan 25, 2017
It's 03:10:20 PM on Wednesday, Jan 25, 2017
It's 03:10:21 PM on Wednesday, Jan 25, 2017
我不能在终端上执行这个操作吗?我在两次操作之间加入了1秒的暂停,这有问题吗?
这是我的代码:
import time
import sys
print("Good morning!")
while True:
time_str = "It's %I:%M:%S %p on %A, %b %d, %Y\r"
print time.strftime(time_str)
sys.stdout.flush()
time.sleep(1)
一些额外信息:我在Ubuntu系统上使用bash shell。
print()
中使用end="\r"
,而不是在time_str
和format()
中使用。 - furas