You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中定时触发代码:如何获取指定分钟/秒数计数

实现Python定时触发并获取倒计时计数

嘿,这个需求我刚好做过类似的,给你分享几个实用的方案,既能实现3分钟后触发代码,还能轻松获取剩余时间的计数(而不是已用时间):

方法1:基于time模块的简单倒计时触发

这种方式最直接,适合不需要主程序做其他事情的场景。我们先设定总倒计时秒数(180秒),然后循环递减,每次sleep1秒,这样就能实时拿到剩余的秒数计数,直到计数归0时触发目标代码:

import time

def trigger_code():
    print("3分钟到啦!执行目标代码~")

# 总倒计时秒数
total_seconds = 180

for remaining in range(total_seconds, 0, -1):
    # 这里可以拿到剩余秒数计数,想转分钟的话直接//60就行
    minutes = remaining // 60
    seconds = remaining % 60
    print(f"剩余时间: {minutes}分{seconds}秒", end="\r")  # 换行覆盖实现动态显示
    time.sleep(1)

# 倒计时结束,触发代码
trigger_code()

方法2:基于datetime的灵活倒计时(适合多任务场景)

如果你的主程序还要同时处理其他逻辑,不想被sleep阻塞,可以用datetime模块记录触发时间,然后定时检查当前时间和触发时间的差值,获取剩余时间计数:

import datetime
import time

def trigger_code():
    print("3分钟到啦!执行目标代码~")

# 计算3分钟后的触发时间
trigger_time = datetime.datetime.now() + datetime.timedelta(minutes=3)

while datetime.datetime.now() < trigger_time:
    # 计算剩余时间
    remaining_time = trigger_time - datetime.datetime.now()
    # 转换成总秒数,或者拆分成分秒
    total_remaining = int(remaining_time.total_seconds())
    minutes = total_remaining // 60
    seconds = total_remaining % 60
    print(f"剩余时间: {minutes}分{seconds}秒", end="\r")
    time.sleep(1)  # 每秒检查一次,避免占用过多CPU

trigger_code()

方法3:用线程实现非阻塞倒计时

如果主程序完全不能被耽误,那就把倒计时和触发逻辑放到单独的线程里,这样主程序该干嘛干嘛,倒计时在后台运行:

import time
import threading

def countdown_and_trigger():
    total_seconds = 180
    for remaining in range(total_seconds, 0, -1):
        minutes = remaining // 60
        seconds = remaining % 60
        print(f"剩余时间: {minutes}分{seconds}秒", end="\r")
        time.sleep(1)
    trigger_code()

def trigger_code():
    print("\n3分钟到啦!执行目标代码~")

# 启动倒计时线程
countdown_thread = threading.Thread(target=countdown_and_trigger)
countdown_thread.start()

# 主程序继续执行其他逻辑
print("主程序正在处理其他任务...")

这几种方法都能轻松获取剩余时间的计数,你可以根据自己的程序场景选最合适的~

内容的提问来源于stack exchange,提问作者Salman Ahsan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:17:36