我正在尝试创建一个具有多个警报的闹钟,这些警报是从每行特定时间的文本文件设置的,但此刻它只在我设置一次时才起作用。我究竟做错了什么?这是我现在的代码:
import time
from playsound import playsound
Time = time.strftime('%H:%M')
with open('alarms.txt') as f:
alarms = f.readlines()
for alarm in alarms:
while Time != alarm:
print('The time is: ' + Time)
Time = time.strftime('%H:%M')
time.sleep(1)
continue
if Time == alarm:
playsound('alarm.mp3')
而我的alarms.txt设置如HH:MM:18:45 18:55
根据目前给出的信息,我的想法是这样的:
请记住,readlines()读入行并返回字符串,其中换行符仍在尾随。您需要将行的时间与删除的换行符进行比较。
import time
from playsound import playsound
Time = time.strftime('%H:%M')
with open('alarms.txt') as f:
alarms = f.readlines()
for alarm in alarms:
alarm = alarm.rstrip('\n')
while Time != alarm:
print('The time is: ' + Time + '\n')
Time = time.strftime('%H:%M')
time.sleep(1)
continue
if Time == alarm:
playsound('alarm.mp3')
当然,这也假定文本文件中的时间是按期望的时间顺序。