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

Python指定时间运行函数求助:定时打开链接代码失效

解决Python定时打开指定链接的问题

我来帮你分析下代码里的核心问题,再给出可行的改进方案:

你的代码为什么没生效?

  • 只做了一次时间检查:程序运行后只会获取一次当前时间,要是刚好错过目标时间那一秒,就直接退出了,不会持续等待到目标时间点。
  • 字符串匹配的容错性为零:time.ctime()返回的时间字符串虽然格式固定,但要完全和你写的"Tue May 01 11:05:17 2018"丝毫不差(包括秒数)的概率极低——大概率你的程序运行时,当前时间和目标时间差个几秒,直接就不匹配了。

方案一:循环监控时间(推荐)

这种方式先把目标时间转换成时间戳,然后循环检查当前时间,达到目标时间就打开链接,同时用time.sleep()降低CPU占用:

import time
import webbrowser

# 定义你的目标时间字符串
target_time_str = "Tue May 01 11:05:17 2018"
# 将字符串转成时间元组(格式要和strptime的参数对应)
target_time_tuple = time.strptime(target_time_str, "%a %b %d %H:%M:%S %Y")
# 转成秒级时间戳,方便和当前时间对比
target_timestamp = time.mktime(target_time_tuple)

print(f"当前时间: {time.ctime()}")
print(f"正在等待目标时间: {target_time_str}")

while True:
    current_timestamp = time.time()
    # 当当前时间达到或超过目标时间时执行操作
    if current_timestamp >= target_timestamp:
        webbrowser.open("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
        print("链接已成功打开")
        break
    # 每隔1秒检查一次,避免占用过多系统资源
    time.sleep(1)

方案二:直接计算等待时长(更简洁)

如果不需要中途取消定时任务,可以直接算出当前时间到目标时间的差值,用time.sleep()等待对应时长后再打开链接:

import time
import webbrowser

target_time_str = "Tue May 01 11:05:17 2018"
target_time_tuple = time.strptime(target_time_str, "%a %b %d %H:%M:%S %Y")
target_timestamp = time.mktime(target_time_tuple)
current_timestamp = time.time()

# 计算等待时长,避免出现负数(如果目标时间已经过去)
wait_seconds = max(target_timestamp - current_timestamp, 0)

print(f"将在{round(wait_seconds)}秒后打开链接")
time.sleep(wait_seconds)
webbrowser.open("https://www.youtube.com/watch?v=dQw4w9WgXcQ")

额外提示

如果需要处理时区差异,建议搭配datetime模块和pytz库来确保时间匹配准确;另外要注意,程序在目标时间到来时必须处于运行状态,别中途关闭哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:07:43