Python如何实现后面程序运行后循环输出的值被前面的值覆盖

import time

import datetime

i = time.strftime("%H:%M:%S") # 获取当前的时间

s = (datetime.datetime.now()).second # 获取当前系统当前时间的秒数

m = (datetime.datetime.now()).minute # 获取当前系统当前时间的分钟数

h = (datetime.datetime.now()).hour # 获取当前系统当前时间的小时数

print("当前的时间:" + i)

while (s < 60):

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 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")

你可以直接在交互式环境输出就能看到效果,然后在加入到你的代码里。望采纳!

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

这个代码有一点延迟啊