我正在编写一个 python 代码来实现一个闹钟,我将一些 YouTube 链接放在文本文件中,程序将读取该文件。我必须以任何格式设置时间,在那个特定时间程序将从保存在文件中的链接中随机选择一个链接并开始播放。但是在 if else 部分,我的程序陷入了无限循环。
任何人都可以在我做错的地方检查我的代码。
import random
import time
import webbrowser
from datetime import datetime
import subprocess
lines = open("C:\Python_code\Links.txt").read().splitlines()
mylines = random.choice(lines)
print(mylines)
time_input = str(raw_input("Please enter the time in HH:MM:SS format: "))
current_date = str(raw_input("Please enter the date in YYYY/MM/DD format: "))
selected_time = datetime.strptime('%s %s'%(current_date, time_input),"%Y/%m/%d %H:%M:%S")
print "Time selected: ",selected_time
while True:
if selected_time == time.localtime():
print "Alarm Now"
webbrowser.open(mylines)
break
else:
print "no alarm"
原文由 Sharmili Nag 发布,翻译遵循 CC BY-SA 4.0 许可协议
您正在尝试在时间比较中比较苹果和橙子:
如果比较两种不同的类型,time.struct_time 和 datetime.datetime,即使这些对象中记录的时间相同,您也会发现它是 false。
如果将 struct_time 转换为日期时间,则比较将起作用:
我建议不要循环并不断将当前时间与闹钟时间进行比较,而是使用 time.sleep() 函数。从您的闹钟时间中减去当前时间并睡眠该秒数。