Python定期运行脚本

2024-06-01 07:41:42 发布

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

现在我有一些脚本,我想自动定期运行,比如说,每两天运行一次

我的组织方式是这样的

脚本1:

def example1():
    #Some Selenium code

example1()

脚本2:

def example2():
    #Some more Selenium code

example2()

脚本3:

import Script1
import Script2

您会注意到,'Script1'和'Script2'已经调用了它们的主函数,因此在'Script3'中,我只需要导入脚本,而不需要调用函数(虽然这对我来说很有效,但我不确定这是否是一种安全的方法/良好的做法)

我的问题:如果我使用schedule每x天运行一次“Script3”,这意味着脚本将永远运行,还是每x天运行一次,然后进入睡眠模式,直到必须再次运行?而且,要让它运行,就需要电脑一直开机,对吗

如果是这样的话,有没有办法让它在电脑关机的情况下自动定期运行

提前谢谢


Tags: 函数import脚本defmoreselenium方式code
3条回答

I'm not sure whether this is a safe approach/good practice

Python的禅宗说;“显式优于隐式。”因此最好使用:

 import script1
 import script2

 script1.example1()
 script2.example2()

通常不建议模块在导入时运行代码。导入模块最好不要有副作用

if I use schedule

可能有不止一个名为“schedule”的程序。你能说得更具体些吗

is there any way to make it run automatically and periodically even with the PC turned off

定期运行脚本的方法不止一种。像Linux这样的类UNIX系统有cronatrun。 其他系统有自己的方式

但所有这些只有在机器打开时才起作用。在没有额外硬件的PC上,定期开机通常是不可能的。除非你能得到Intel Management Engine做你的出价

像ESP32这样的微控制器(可以运行micropython)确实有“深度睡眠”模式用于此目的,但我有点怀疑它们是否可以运行selenium.:-)

我想Windows调度器的工作方式与linux中的cron作业相同。因此,事实上,在创建“任务”之后,windows会每秒检查一次,看他是否需要执行任何任务。但这是一直在做的,所以这对性能没有影响,如果这是您所担心的。那么我想澄清一下:

  1. Windows会看到已计划的批处理文件并按时执行
  2. Windows在批处理文件中执行python脚本,脚本完成
  3. Windows一直在检查计划程序,但脚本进程“死机”

即使在关闭电脑的情况下也要这样做,这是不可能的

如果您在Linux或任何其他基于Unix的操作系统上,则可以使用Cron进行作业调度。但是,如果在cron作业运行时关闭,系统将关闭,cron作业将停止(或不运行)

您可以选择anacron

相关问题 更多 >