如何定期检查程序中的当前日期?

2024-06-16 08:52:59 发布

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

我想为某人写一个类似日历的小应用程序作为生日礼物(在Ubuntu上运行)。它应该做的就是每天显示一张单独的图片,所以每当它被调用时,它都应该检查日期并从我提供的集合中选择合适的图片,但是,如果它继续运行,它应该在第二天开始时切换到下一张图片。在

调用时的日期检查不是问题所在;我的问题与第二种情况有关:如何让程序注意到第二天的开始?我笨拙的方法是让它定期检查当前日期,并在日期发生变化时让它更改显示的图片,但这给我的印象是非常迂回,不太优雅。在

如果你们中的任何人知道我该怎么做,请不要犹豫回答。我的目标是用Perl或Python编写应用程序,因此对于这两种语言的建议将是非常欢迎的,但是任何其他建议也将是非常感谢的。在

非常感谢您的时间!在


Tags: 方法程序语言应用程序目标ubuntu时间情况
2条回答

你考虑过安排脚本的调用吗?在

对我来说,最好的方法是:

1.有两个选项来运行脚本:

  • 运行脚本
  • 运行脚本更新

2.在某些任务调度器(例如Cron)中计划每天执行更新运行。在

3.如果要检查当前日期的图像,只需运行不带更新选项的脚本。在

如果你想让我扩展其中的任何一部分,只需询问一下。在

答案可能与系统有关。控制程序执行的时间可能取决于系统。在所有*nix类型的系统上,我会使用cron。假设您使用的是*nix系统,那么答案就取决于该程序实际做了什么。在

如果它只需要选择一个映像,那么我建议它不要继续运行,而是在选择它之后终止它自己,然后在第二天再次运行(有很多关于如何设置cron的教程)。在

但是,如果它有某种形式的用户界面,并且它很可能(可以阅读)持续运行几天,那么您可以遵循两种方法:

  1. 按原样创建程序,定期轮询当前时间,并进行日期增量比较。Python timedelta objects可以帮上忙。这几乎是你不雅的做法。在
  2. 另一种解决方案是在您确实希望它更新时从cron向它发送一个信号。这个过程意味着你必须让它感知信号,并对USR1之类的东西做出响应。The Python docs你可以在网上找到很多教程。这种方法对于daemonized应用程序也非常有效。在

我相信还有很多其他的方法,但是对于一个快速和低级的应用程序来说,这些都是我想到的。在

相关问题 更多 >