1 # -*- coding: utf-8 -*- 2 import datetime, calendar, time 3 from collections import namedtuple 4 5 def create_logger(filename="file.log"): 6 def logger(info): 7 now = datetime.datetime.today() 8 time_str = now.strftime('%H:%M:%S: ') 9 f = open(filename, "a") 10 f.write(time_str) 11 f.write(info) 12 f.close() 13 return logger 14 15 Task = namedtuple("task", "name, time, task") 16 17 def perfrom_one_task(task=None): 18 now = datetime.datetime.today() 19 time_str = now.strftime('%H:%M') 20 if time_str == task.time: 21 print "Performing", task.name 22 task.task() 23 time.sleep(70) # 睡眠70秒避免在相同时段内重复执行相同任务 24 print "Sleep Done!" 25 return True 26 return False 27 28 def run(Tasks): 29 while True: 30 map(perfrom_one_task, Tasks) 31 time.sleep(1) 32 33 # ============================================================================== 34 logger = create_logger("log.log") 35 36 def mytask(logger=logger): 37 logger("do something\n") 38 39 Tasks = [Task("testtask", "14:30", mytask)] 40 41 run(Tasks)