python办公自动化——定时运行py文件

在工作中,经常遇到需要定时运行代码的任务,比如一个py代码需要每隔15分钟运行一下,或者py文件在每天的4点开始运行文件,那么我们应该怎么做?

这个很简单,我们这里需要apscheduler包;直接安装这个包就行:

 pip install apscheduler

 

我现在的习惯就是讲我要定时运行的代码放到一个py文件里面。这样我只要python xxx.py就能运行一次;

接下来我还会写另外一个py文件,这个py文件就相当于一个不睡觉的东西;每隔一段时间就运行一下;假设这个代码叫clock.py,代码内容如下:

from datetime import date, datetime

import time
import os 
from apscheduler.schedulers.background import BackgroundScheduler

def tick():
    print("tick ! the time is : %s" % datetime.now())
    os.system("python daytable.py")


if __name__ == "__main__":
    scheduler = BackgroundScheduler()

    scheduler.add_job(tick, 'interval', days=1, start_date="2021-2-19 5:00:00")

    scheduler.start()

    print("Press Ctrl + {0} to exit".format('Break' if os.name == 'nt' else 'C'))
    try:

        while True:
            time.sleep(30)
            print(f"sleep! - {datetime.now()}")
    
    except (KeyboardInterrupt, SystemExit):
        scheduler.shutdown()
        print("Exit The Job !")

 

我在上面的代码中定义了一个tick函数,这个函数里面是我要运行的程序,然后我调用python的os库的system函数,这样就可以通过命令行形式调用我的目标py函数;

然后我在mian里面,加入一个计划,然后讲tick函数放到这个job里面。在这个add_job里面设置好开始时间,也可也设置结束时间,可以说设置模式,我这里设置为'interval、意思就是每隔一端时间就运行一下,运行时间可以设置为days,minutes,seconds,都行;

 

最后一步就是python运行这个clock.py文件就行,每隔一段时间,这个clock.py文件就会自动运行你的那个tick函数里面的py代码文件

参考链接:

posted @ 2022-11-26 13:50  锦绣良缘  阅读(1549)  评论(0)    收藏  举报