python实现的腾讯微博管家-定时发布进度
作者: 郑晓 分类: Python 发布于: 2014-11-05 08:28 浏览:5,171 没有评论
这两天抽空完成了定时发布功能的设置部分,比如添加定时,删除定时,显示当前已定时任务。
定时功能由主菜单选择进入
增加一条定时任务命令格式:
add 日期时间 发布内容
如
add 2014-11-05/08:00:00 这是一条微博!
显示当前任务列表命令为show,列出当前任务的索引编号、定时时间、发布内容。
删除某条任务,命令格式:
del 索引编号
如
del 1
基本实现代码:
#定时发布任务设置
p = re.compile(r'\s+')
while True:
code = raw_input('设置或修改定时发布任务:')
if code=='':
showMainMenu()
break
code = p.sub(' ', code)
args = code.split(' ')
operation = {
'add': lambda x,y:add_auto_post_task(x,y),
'del': lambda x,y:del_auto_post_task(x),
'show':lambda x,y:show_auto_post_task()
}
#输入如show 或del删除命令时,由于args数组长度不够,我也没想出什么更好的方法,所以这里进行了长度填充。
while len(args)<3: args.append(' ') print operation[args[0]](args[1],args[2])
这里使用了字典+匿名函数来模拟switch功能,而且由于我定义的匿名函数参数列表长度相等,所以在最后一行 可以统一调用。
三个匿名函数调用的方法代码如下,其中autoPostTaskListT和C分别为储存任务时间和任务发布内容的两个同长度列表,日期时间还应该转为时间戳,我这里暂时没处理:
#添加定时任务
def add_auto_post_task(t,c):
try:
autoPostTaskListT.append(t)
autoPostTaskListC.append(c)
return True
except:
return False
#删除定时任务
def del_auto_post_task(i):
try:
i = int(i)
del autoPostTaskListT[i]
del autoPostTaskListC[i]
return True
except:
return False
#列出当前定时任务列表
def show_auto_post_task():
try:
for i in xrange(len(autoPostTaskListT)):
print i,"\t",autoPostTaskListT[i], "\t", autoPostTaskListC[i]
return True
except:
return False
剩下任务:如何设置一个子线程去进行定时扫描list来实现定时。
本文采用知识共享署名-非商业性使用 3.0 中国大陆许可协议进行许可,转载时请注明出处及相应链接。
本文永久链接: https://www.zh30.com/python-tencent-weibo-sdk-dingshifabu.html