如何创建一个Python“警报”,它将在今天或明天起作用

2024-06-14 03:56:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个python脚本,它允许我在设置的时候将mac的音量静音,这样我睡着的时候听的任何播客都不会在我睡着的时候叫醒我

但是,它只会在当天给定的时间发生一次,因此如果我尝试在午夜前激活它,它会立即将笔记本电脑静音,这并不理想,因为如果我想使用它,我必须等待午夜过去,然后才能入睡

#!/usr/bin/env python3

import datetime as dt
import osascript
import sys
from threading import Timer 

def do_the_biz():
   osascript.osascript("set volume output volume 0")
   print("Night night")
today = dt.datetime.now()
dateString = today.strftime('%d-%m-%Y') + " " + sys.argv[1]
newDate = today.strptime(dateString,'%d-%m-%Y %H:%M')
delay = (newDate - dt.datetime.now()).total_seconds()
Timer(delay,do_the_biz,()).start()

因此,此脚本的典型执行如下所示:

$./sleep.py 04:00

到凌晨4点后,命令行将返回以下内容,然后关闭程序:

Night Night

我想要的是能够操纵日期,这样脚本将在下一个可用的时间运行,例如,凌晨4点-所以它基本上会以与警报完全相同的方式运行。为了这个,我明天可以运行一个完全不同的睡眠脚本

然而,在一个理想的世界里,我希望能够:

  • 有权选择另一个论点,我指定今天或明天和程序相应行动
  • 能够在不关闭终端的情况下取消进程

我是python新手,一直很难理解各种datetime函数之间的差异,文档化也没有帮助,所以请简要解释和比较它们的输入和输出以及它们之间的交互方式


Tags: theimport脚本todaydatetimesys时间dt