上面的程序会先输出系统的时间,然后程序运行变化后的时间。
会循环输出更新的值,怎么实现在只输出最新的值(也就是后面的值要覆盖前面的)
这样子?
# coding=utf-8
import time
import datetime
import os
import sys
i = time.strftime("%H:%M:%S")
s = (datetime.datetime.now()).second
m = (datetime.datetime.now()).minute
h = (datetime.datetime.now()).hour
print("current time:" + i)
while (s < 60):
os.system('cls') # windows
# os.system('clear') # linux
print('%02d:%02d:%02d' % (h, m, s))
time.sleep(1)
s += 1
if s == 60:
s = 0
m += 1
if m == 60:
m = 0
h += 1
if h == 25:
h = 0
或者这样,
# coding=utf-8
import time
import datetime
import sys
def progressbar(t_n):
sys.stdout.write('\r')
sys.stdout.write(t_n)
sys.stdout.flush()
i = time.strftime("%H:%M:%S")
s = (datetime.datetime.now()).second
m = (datetime.datetime.now()).minute
h = (datetime.datetime.now()).hour
while (s < 60):
# os.system('cls') # windows
# os.system('clear') # linux
# print('%02d:%02d:%02d' % (h, m, s))
progressbar('current time: %02d:%02d:%02d' % (h, m, s))
time.sleep(1)
s += 1
if s == 60:
s = 0
m += 1
if m == 60:
m = 0
h += 1
if h == 25:
h = 0
要清除当前输出,教你你绝技:
print(chr(27) + "[2J")
你可以直接在交互式环境输出就能看到效果,然后在加入到你的代码里。望采纳!
import time
import datetime
import sys
def progressbar(t_n):
sys.stdout.write('\r')
sys.stdout.write(t_n)
sys.stdout.flush()
i = time.strftime("%H:%M:%S")
s = (datetime.datetime.now()).second
m = (datetime.datetime.now()).minute
h = (datetime.datetime.now()).hour
while (s < 60):
# os.system('cls') # windows
# os.system('clear') # linux
# print('%02d:%02d:%02d' % (h, m, s))
progressbar('current time: %02d:%02d:%02d' % (h, m, s))
time.sleep(1)
s += 1
if s == 60:
s = 0
m += 1
if m == 60:
m = 0
h += 1
if h == 25:
h = 0
这个代码有一点延迟啊