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

无Tkinter的Python闹钟到点未停止,如何实现触发后终止并打开浏览器播歌?

解决你的Python闹钟问题

嘿,我来帮你调整代码,让闹钟到点就停,还能自动打开浏览器播放随机歌曲!咱们一步步来改:

首先,你需要导入几个必要的模块:random用来选随机歌曲链接,time处理时间和倒计时,webbrowser用来打开浏览器。另外注意Python3里没有raw_input,统一用input就行。

下面是修改后的完整代码,我加了详细注释:

import random
import time
import webbrowser
from datetime import datetime

# 读取歌曲链接文件,用上下文管理器更安全
with open("Links.txt", "r") as f:
    lines = f.read().splitlines()
# 随机选一个歌曲链接
mylines = random.choice(lines)
print(f"即将播放的歌曲链接:{mylines}")

# 获取用户信息和闹钟时间
name = input("Enter your name: ")
print(f"Hello, {name}")

# 让用户输入闹钟时间,格式建议用HH:MM(比如07:30)
alarm_time_str = input("Enter the alarm time (HH:MM): ")
# 把输入的时间拆成小时和分钟
alarm_hour, alarm_minute = map(int, alarm_time_str.split(":"))

print(f"闹钟已设置为 {alarm_time_str},请稍等...")

while True:
    # 获取当前时间的小时和分钟
    now = datetime.now()
    current_hour = now.hour
    current_minute = now.minute
    
    # 检查是否到达闹钟时间
    if current_hour == alarm_hour and current_minute == alarm_minute:
        print("\n时间到啦!开始播放歌曲~")
        # 调用系统默认浏览器打开选中的歌曲链接
        webbrowser.open(mylines)
        # 跳出循环,停止闹钟运行
        break
    
    # 每秒刷新一次检查
    time.sleep(1)
    # 可选:实时显示当前时间,用\r实现单行刷新
    print(f"当前时间:{now.strftime('%H:%M:%S')},等待闹钟...", end="\r")

关键改动说明:

  • 停止运行:用while True循环持续监测当前时间,当匹配到设定的闹钟时间时,执行break跳出循环,闹钟就停止运行了。
  • 打开浏览器播放歌曲:通过webbrowser.open(mylines)直接调用系统默认浏览器,打开你随机选中的歌曲链接。
  • 时间精准对比:用datetime模块获取当前时间,和用户输入的闹钟时间做精准匹配,避免单纯倒计时可能出现的误差。
  • 文件读取优化:用with open上下文管理器读取文件,能自动关闭文件,避免资源泄漏。

只要你的Links.txt里都是有效的歌曲播放链接(比如音乐平台的直接播放地址),到点后浏览器就会自动打开并播放啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:27:55