当前位置:博客首页>>Python >> 阅读正文

python实现的腾讯微博管家-定时发布进度

作者: 郑晓 分类: Python 发布于: 2014-11-05 08:28 浏览(2,650) 没有评论


这两天抽空完成了定时发布功能的设置部分,比如添加定时,删除定时,显示当前已定时任务。

python实现的腾讯微博管家-定时发布进度

定时功能由主菜单选择进入
增加一条定时任务命令格式:

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