如何每分钟运行一个Python脚本?2025年3月5日 | 阅读6分钟 总体而言,可以认为自动化和任务调度是软件开发成功的关键组成部分。设想这样一个场景:您有一个Python脚本,需要每隔1分钟执行一次。此脚本可能用于从API获取数据、执行专门的数据操作或定期发送更新。当必须如此频繁地手动运行此脚本时,它将非常耗时,并且可能还会导致错误。 任务调度通过按计划运行脚本来解决此挑战,从而减少了空闲等待时间。它不仅节省时间,还最大程度地减少了人为干预可能引起的错误。 例如,在使用 `schedule`、`APScheduler` 等Python 库 以及Unix OS的cron或Windows的任务计划程序等系统级调度工具时,您可以预设脚本每分钟运行一次。这使您可以自动运行操作,从而使进程自行执行。 此外,任务可以创建为一次性任务或响应事件启动的任务。通过这些功能,您的软件项目中的各种操作变得更加高效,并且项目中的时间敏感活动得到了很好的协调和完成。 让我们看看如何将Python脚本安排为每1分钟运行一次 使用 time.sleep() 方法使用 `time.sleep()` 函数是一种相对简单的实现此特定功能的方法,它允许Python脚本以设定的时间间隔执行,例如,每五分钟执行一次。`time.sleep()` 是一个非常重要的内置函数,它可以使脚本的运行或执行暂停或延迟。当将此函数与循环结合使用时,它会创建一个周期性系统,在该系统中,脚本会在固定时间间隔过去后运行。 它的工作原理是:您将脚本的主要功能放在一个循环中,并使用 `time.sleep(60)`,这会使函数执行之间暂停5分钟。这样,脚本完成给定的工作,并在等待特定时间后,再次重复执行工作。 代码 输出 Executing task at 2024-09-04 12:00:00 Executing task at 2024-09-04 12:01:00 Executing task at 2024-09-04 12:02:00 Executing task at 2024-09-04 12:03:00 Executing task at 2024-09-04 12:04:00 ............ 说明 上面的代码实现了一个无限循环,该循环使用Python每五分钟运行一次任务。随后导入 `time` 和 `datetime` 模块以引入时间延迟并处理时间戳。在代码中,`main_task()` 函数用于打印一条消息,指示任务正在执行的日期和时间。 `True` 循环在确保 `main_task()` 函数一直运行直到被中断方面发挥着重要作用。实际上,在包装函数中,`main_task()` 执行5次后,脚本将暂停60秒或1分钟,使用 `time.sleep(60)` 函数。这样,它每1分钟重复一次,以便在需要时完成任务。因此,此脚本将每1分钟在控制台打印一次当前时间,直到被中断。 如果您按照链接并运行此脚本,您会注意到该消息每1分钟出现一次。这是通过 `main_task()` 函数完成的,之后程序等待60秒;`time.sleep(60)` 函数在循环再次开始之前。这个解决问题的方法似乎非常简单但可行,适用于需要定期执行的脚本,尽管它存在一些缺点。 使用 Schedule 模块`schedule` 模块提供了创建Python脚本的功能,该脚本将在特定时间执行操作。例如,有一个 `schedule.every(5).minutes.do(func)` 语句,可以帮助您实现每5分钟运行一次任务。在这里,`func` 是一个函数参数,代表您想要执行的操作。 如果您要安排任务,那么您必须定期检查 `schedule` 以查看是否有即将执行的任务。 `run_pending()` 函数。此函数会过滤出是否有任何需要按当前时间运行的cron作业。当您的脚本中包含此类检查时,它可确保所有任务都按计划执行。 代码 输出 Task is running Task is running 说明 此Python脚本使用 `schedule` 模块来连续每分钟运行一次任务。它创建了一个 `task()` 函数,该函数将消息“Task running”打印到控制台。 `schedule.every(1).minutes.do(task)` 语句将此任务安排为每分钟运行一次。确实,有趣的是,在 `while True:` 循环中,存在一个空 `schedule.run_pending()` 函数。该函数确定是否有任何已安排的任务需要运行,如果有,则运行它。`time.sleep(1)` 函数用于避免程序因不断检查而占用大量CPU资源,循环暂停1秒后恢复。这使得任务能够持续以指定的频率运行,而不会持续消耗资源。 使用 CrontabCron作业实用程序是一种基于时间的作业调度程序,在类Unix操作系统(如Linux)中使用。它使用户能够在特定或任何给定时间/间隔运行命令、脚本或程序。在Cron中,用户可以将某些任务配置为以重复方式运行,例如,每天、每周或在特定时间段内。因此,当计算机需要一遍又一遍地执行相似的任务时,例如,需要维护、备份或进行数据处理的特定系统,这种功能就变得很重要。通过使用Cron作业,用户可以安排脚本命令或他们希望运行的任何其他函数的运行时间或间隔,而无需依赖手动运行它们。 如果您想创建一个Python脚本,该脚本将由cron作业每分钟执行一次,您可以按照以下步骤进行:例如,如果您要创建一个Python脚本,希望通过cron作业每1分钟运行一次,以下操作将有所帮助: 创建Python脚本:您需要创建一个Python脚本,例如 `your_script.py`(您可以根据需要命名)。例如,让我们考虑一个将消息写入日志文件的脚本。 代码 将 `/path/to/your_log_file.log` 替换为实际的日志文件路径。脚本将在运行时在日志文件中打印一个纪元时间戳。 使脚本可执行(可选):如果您想直接调用脚本,可以使用 `chmod +x your_script.py` 命令,并在脚本顶部添加shebang行。在脚本顶部添加以下行: 代码 然后,使脚本可执行。接下来,使bash脚本可执行。 代码 设置Cron作业:要添加cron作业,请参考上面教程中的步骤。您将通过运行 `crontab -e` 来编辑您的crontab文件,然后添加以下行: 代码 确保将 `/path/to/your_script.py` 替换为您Python脚本的实际路径。 保存并验证:然后保存crontab文件,并通过 `crontab -l` 检查作业调度。 输出 Script executed at: 2024-09-05 12:00:00 Script executed at: 2024-09-05 12:01:00 Script executed at: 2024-09-05 12:02:00 ... |
OpenAI 已经为 ChatGPT API 发布了一个名为 `openai` 的官方 Python 客户端库。这个库提供了一个易于使用的接口,用于与 ChatGPT API 交互并生成文本补全。要使用 `openai` 库,你首先需要安装它。你可以使用...
阅读 13 分钟
在这个问题中,我们将给出 N 本书和 M 名学生。此外,还给出每本书的页数。包含页数的数组是已排序的...
7 分钟阅读
数组是 Python 中的基本数据结构,它提供了一种方便的方式来存储和操作元素集合。规范化数组是一项常见操作,它涉及将数组内的值缩放到标准范围。此过程对于各种应用至关重要,例如...
阅读 4 分钟
简介 试位法,通常称为 Regula Falsi 法,是一种用于求解非线性方程的数值方法。但当根位于特定区间时,该方法特别有效。在这里,我们将深入探讨 False 的基础...
5 分钟阅读
最佳适配算法是一种用于内存分配的算法,用于搜索适合进程的可用内存块。分配内存是一项重要的任务。最常见和简单的内存分配方法是使用最佳适配算法。最佳...
阅读 8 分钟
引言:在字符串操作领域,一个常见的问题是找出不重复字符的最长子字符串的长度。这个问题在数据处理、生物信息学和自然语言处理等各个领域都有应用。在本文中,我们将深入探讨...
阅读 4 分钟
编程语言是软件的基础,用于开发软件应用程序、网站、游戏和许多其他基于计算机的产品。在现有语言中,GDScript 和 Python 是不同的,尽管它们根据开发人员的偏好满足不同的需求。GDScript...
阅读9分钟
?在处理大型项目或希望在多个文件之间重用方法或类时,将 Python 代码划分为更小、更易于管理模块是一种明智的做法。分割模块后,您可以使用 import 语句将功能引入...
阅读 4 分钟
对称加密简介 对称加密是密码学领域的基础,它遵循一个关键标准:使用同一个密钥进行加密和解密过程。它通过计算工作,其中相同的密钥将明文加密为密文,然后进行解密...
阅读9分钟
Biopython中的Motif对象简介 Biopython中的Motif对象提供了一个有效的框架来操作生物序列基序。基因调控、蛋白质结构和进化联系的研究依赖于这些基序,它们是DNA、RNA或...等序列中的模式。
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India