Python - 具有多个警报的闹钟

问题描述 投票:0回答:1

我正在尝试创建一个具有多个警报的闹钟,这些警报是从每行特定时间的文本文件设置的,但此刻它只在我设置一次时才起作用。我究竟做错了什么?这是我现在的代码:

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

python python-3.x
1个回答
2
投票

根据目前给出的信息,我的想法是这样的:

请记住,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')

当然,这也假定文本文件中的时间是按期望的时间顺序。

© www.soinside.com 2019 - 2024. All rights reserved.