Python的schedule模块与sys.argv的使用

 


main函数使用sys.argv传入多个参数#

在运维过程中,有些时候需要向main函数中传递参数,以方便运维与测试,那么怎么向main函数中传入多个参数呢,下面以python3中的main函数为例,简单讲一下。首先我们需要import sys,sys是python3的一个标准库,也就是一个官方的模块。封装了一些系统的信息和接口,然后再说说argv这个变量。「argv」是「argument variable」参数变量的简写形式,一般在命令行调用的时候由系统传递给程序。这个变量其实是一个List列表,argv[0] 一般是被调用的脚本文件名或全路径,和操作系统有关,argv[1]和以后就是传入的数据了。

1
2
3
4
5
6
7
8
9
10
11
import sys
 
#传入3个参数,具体操作根据个人情况
 
def main(argv):
  print(argv[1])
  print(argv[2])
  print(argv[3])
 
if __name__ == "__main__":
  main(sys.argv)

接下来直接执行python main.py  1 2 3,,将会得到1 2 3的打印。

(PS:最后说明一下,sys.argv传入的参数为字符串类型,如果想做一些条件判断的话需要转成你所需要的数据类型。)

使用schedule模块定时执行任务#

python中有一个轻量级的定时任务调度的库:schedule。他可以完成每分钟,每小时,每天,周几,特定日期的定时任务。因此十分方便我们执行一些轻量级的定时任务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import schedule
 
import time
 
  
 
def job():
 
    print("I'm working...")
 
  
 
schedule.every(10).minutes.do(job)
 
schedule.every().hour.do(job)
 
schedule.every().day.at("10:30").do(job)
 
schedule.every(5).to(10).days.do(job)
 
schedule.every().monday.do(job)
 
schedule.every().wednesday.at("13:15").do(job)
 
  
 
while True:
 
    schedule.run_pending()
 
    time.sleep(1)

  

上面的意思就是:

每隔十分钟执行一次任务

每隔一小时执行一次任务

每天的10:30执行一次任务

每隔5到10天执行一次任务

每周一的这个时候执行一次任务

每周三13:15执行一次任务

run_pending:运行所有可以运行的任务

 

当然,如果函数中带有参数怎么办呢?

很简单,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import schedule
import time
 
  
def job(name):
    print("her name is : ", name)
 
name = xiaona
schedule.every(10).minutes.do(job, name)
schedule.every().hour.do(job, name)
schedule.every().day.at("10:30").do(job, name)
schedule.every(5).to(10).days.do(job, name)
schedule.every().monday.do(job, name)
schedule.every().wednesday.at("13:15").do(job, name)
 
  
while True:
    schedule.run_pending()
    time.sleep(1)

  

posted @   鲸鱼的海老大  阅读(11)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示
CONTENTS