|
python实现的解析crontab配置文件代码.
用python操作crontab任务计划脚本,个人感觉不错。
#/usr/bin/env python
#-*- coding:utf-8 -*-
"""
1.解析 crontab 配置文件中的五个数间参数(分 时 日 月 周),获取他们对应的取值范围
2.将时间戳与crontab配置中一行时间参数对比,判断该时间戳是否在配置设定的时间范围内
"""
#$Id $
import re, time, sys
from Core.FDateTime.FDateTime import FDateTime
def get_struct_time(time_stamp_int):
"""
按整型时间戳获取格式化时间 分 时 日 月 周
Args:
time_stamp_int 为传入的值为时间戳(整形),如:1332888820
经过localtime转换后变成
time.struct_time(tm_year=2012, tm_mon=3, tm_mday=28, tm_hour=6, tm_min=53, tm_sec=40, tm_wday=2, tm_yday=88, tm_isdst=0)
Return:
list____返回 分 时 日 月 周
"""
st_time = time.localtime(time_stamp_int)
return [st_time.tm_min, st_time.tm_hour, st_time.tm_mday, st_time.tm_mon, st_time.tm_wday]
def get_strptime(time_str, str_format):
"""从字符串获取 整型时间戳
Args:
time_str 字符串类型的时间戳 如 '31/Jul/2013:17:46:01'
str_format 指定 time_str 的格式 如 '%d/%b/%Y:%H:%M:%S'
Return:
返回10位整型(int)时间戳,如 1375146861
"""
return int(time.mktime(time.strptime(time_str, str_format)))
def get_str_time(time_stamp, str_format='%Y%m%d%H%M'):
"""
获取时间戳,
Args:
time_stamp 10位整型(int)时间戳,如 1375146861
str_format 指定返回格式,值类型为 字符串 str
Rturn:
返回格式 默认为 年月日时分,如2013年7月9日1时3分 :201207090103
"""
return time.strftime("%s" % str_format, time.localtime(time_stamp))
def match_cont(patten, cont):
"""
正则匹配(精确符合的匹配)
Args:
patten 正则表达式
cont____ 匹配内容
Return:
True or False
"""
res = re.match(patten, cont)
if res:
return True
else:
return False
def handle_num(val, ranges=(0, 100), res=list()):
"""处理纯数字"""
val = int(val)
if val >= ranges[0] and val = ranges[0] and tmp_val |
|
|