python简易倒计时

小伙伴们,国庆要到了,是不是很激动,几行python代码,实现倒计时。

代码很简单,有几个点注意一下:
①" \r ":称为“回车”字符。在文本输出中,\r 通常用于将光标移回到当前行的起始位置。
光标会被移到这一行的最前面,从而覆盖原有的文本。简单说:就是在需要刷新的位置
覆盖之前的的文本内容,广泛用于倒计时、进度条问题中。
②时间文本是不能直接进行加减的,需要转化为时间类型(datetime)才能进行加减

from datetime import datetime
import time
import sys


def cal_time(total_time):
    for i in range(total_time, -1, -1):
        percent = (total_time - i) / total_time
        bar_cont = 50
        bar = int(round(bar_cont * percent))
        bar_shape = "#" * bar + "-" * (bar_cont - bar)

        text = f"\rhappy time remain: {i}s [{bar_shape}]{percent:.2%}"
        sys.stdout.write(text)
        sys.stdout.flush()
        time.sleep(1)

    sys.stdout.write("\n")
    print("ok")


if __name__ == '__main__':
    target_time = "2024-10-01 00:00:00"
    target_datetime = datetime.strptime(target_time, "%Y-%m-%d %H:%M:%S")
    current_datetime = datetime.now()
    remaining_seconds = int((target_datetime - current_datetime).total_seconds())
    cal_time(remaining_seconds)

 

posted @ 2024-09-27 16:44  许个未来—  阅读(27)  评论(0编辑  收藏  举报