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代码文件
参考链接:
