如何用Python程序替换启动调度

如何用Python程序替换启动调度,python,macos,launchd,Python,Macos,Launchd,Mac OS X系统启动程序启用作业调度(类似于cron)。通过创建启动代理,可以通过以下事件之一触发程序: 一段时间过去了 某个日历日期已经到了 文件路径已被修改 某些内容已放置在某个目录(队列目录)中 已装入一个卷 我以前依靠launchd启动了一组Python脚本,用于自动化OSX系统。但是,由于添加新脚本通常还需要安装新的launchd代理来启动它,因此我希望将launchd从等式中去掉。Python程序应该等待并监视类似上述事件的发生,然后分派适当的例程 是否有适合检测上述事件的P

Mac OS X系统启动程序启用作业调度(类似于cron)。通过创建启动代理,可以通过以下事件之一触发程序:

  • 一段时间过去了
  • 某个日历日期已经到了
  • 文件路径已被修改
  • 某些内容已放置在某个目录(队列目录)中
  • 已装入一个卷
我以前依靠launchd启动了一组Python脚本,用于自动化OSX系统。但是,由于添加新脚本通常还需要安装新的launchd代理来启动它,因此我希望将launchd从等式中去掉。Python程序应该等待并监视类似上述事件的发生,然后分派适当的例程


是否有适合检测上述事件的Python模块?或者,作为一个更一般的问题,如何使用Python(可能还包括通过AppScript桥的AppleScript)替换此设置中的launchd?如果这个问题很模糊,很抱歉。阅读建议也很感谢。

关于文件系统监视问题,也许您正在寻找。根据,

FSEvents API通知您的应用程序 当文件系统中发生更改时。 您可以使用文件系统事件来 监视目录中的任何更改, 例如创建、修改或 删除包含的文件和 目录


谢谢,我可以用它来检测卷和队列目录。仍然在寻找一些可以使观看定时事件变得容易的东西。@D-Bug:对于在经过一段时间后安排事件,您应该能够使用
sched
模块——它在标准库中。您可能还想检查一下这一点,以便回答:关于pyfsevents的后续问题:对pyfsevents.listen()的调用似乎会阻止整个python进程,而不仅仅是调用线程。我希望有一个线程等待传入的文件系统事件。有什么办法吗?@D-Bug:嗯。。很抱歉我对pyfsevents没有第一手的经验。也许如果你用pyfsevents作为标签发布一个新问题,它会吸引对该主题有了解的人