欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Python制作自動(dòng)推送微信消息提醒的備忘錄功能

 更新時(shí)間:2018年09月06日 16:32:13   作者:程序員聚集地  
這篇文章主要介紹了使用Python制作自動(dòng)推送微信消息提醒的備忘錄功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

日常工作生活中,事情一多,就會(huì)忘記一些該做未做的事情。即使有時(shí)候把事情記錄在了小本本上或者手機(jī)、電腦端備忘錄上,也總會(huì)有查看不及時(shí),導(dǎo)致錯(cuò)過(guò)的尷尬。如果有一款小工具,可以及時(shí)提醒,而不用再主動(dòng)去查備忘錄,化被動(dòng)為主動(dòng),那就再合適不過(guò)了。因此,在這里我們就利用Python,實(shí)現(xiàn)這樣的一款“小工具”。

初步設(shè)想

毫無(wú)疑問(wèn),手機(jī)是當(dāng)前使用最頻繁的工具,沒(méi)有之一。飯可以不吃,手機(jī)不可以不帶。如果能在某些特定的時(shí)點(diǎn),將備忘記錄事項(xiàng)通過(guò)某種形式發(fā)送到手機(jī)端,通過(guò)查看手機(jī)端消息實(shí)現(xiàn)事項(xiàng)提醒,那將是再好不過(guò)了。而手機(jī)端最常用的實(shí)時(shí)通訊工具,非微信莫屬。關(guān)于向手機(jī)端推送微信消息的功能,在之前的小項(xiàng)目中已經(jīng)使用過(guò),這里可以直接套用。

【更新2.0】Python自動(dòng)監(jiān)測(cè)自如房源狀態(tài),推送微信消息提醒狀態(tài)變更

于是,我們有了以下思路:

•首先,要有一個(gè)可以記錄事項(xiàng)的文檔,用來(lái)記錄備忘事項(xiàng)的內(nèi)容、提醒時(shí)間、是否辦結(jié)等;
•其次,掃描這個(gè)文檔,獲取事項(xiàng)內(nèi)容,判斷事項(xiàng)是否辦結(jié),如已辦結(jié)需允許對(duì)文檔的修改,標(biāo)記辦結(jié)標(biāo)志;
•然后,設(shè)置一套提醒邏輯,規(guī)定在什么時(shí)間、什么情況下提醒;
•隨后,特殊情景處理,要能夠在不干擾程序正常運(yùn)行的條件下,添加新的備忘事項(xiàng),并且新添加事項(xiàng)能夠被掃描到;
•最后,在規(guī)定的時(shí)間和情境下,推送微信消息。

根據(jù)以上分析,需要的工具,包含三部分:

•一個(gè)可以編寫(xiě)和運(yùn)行Python代碼的編輯器;
•一部裝有微信的手機(jī),最好有兩個(gè)微信號(hào);
•一個(gè)用來(lái)記錄事項(xiàng)的Excel文檔。

用圖表示如下:

用Python設(shè)計(jì)一個(gè)可以自動(dòng)推送微信消息提醒的備忘錄! 

運(yùn)行前準(zhǔn)備

Excel文檔設(shè)計(jì)

為了記錄事項(xiàng),需要有一個(gè)用來(lái)保存事項(xiàng)記錄的Excel文檔。需要對(duì)文檔記錄逐條讀取,獲取事項(xiàng)內(nèi)容、辦結(jié)時(shí)間、辦結(jié)標(biāo)志等,因此需要對(duì)文檔格式進(jìn)行規(guī)范?,F(xiàn)在簡(jiǎn)單的進(jìn)行了設(shè)計(jì),模式如下:

這是一個(gè)非常簡(jiǎn)單的模式了,第二列內(nèi)容是具體提醒事項(xiàng)的詳細(xì)內(nèi)容;第三列日期列要按照“2018/09/02 18:00”的格式書(shū)寫(xiě),需要獲取該列的日期、時(shí)間;第四列是事項(xiàng)辦結(jié)標(biāo)志,已辦結(jié)事項(xiàng)標(biāo)注為“是”。

對(duì)于需要提醒事項(xiàng),需要按照如下格式記錄:


運(yùn)行結(jié)果

直接運(yùn)行程序,Excel文檔內(nèi)容變化如下:

  

我們看到,日期在當(dāng)前時(shí)間(運(yùn)行代碼的時(shí)間)之前的事項(xiàng),即已辦結(jié)事項(xiàng),內(nèi)容會(huì)添加背景色,“是否完成”標(biāo)注為“是”。另外,程序會(huì)整合未辦結(jié)事項(xiàng)內(nèi)容,推送微信通知,如下:

小編在此謝謝大家的觀看!Python很容易學(xué)!所以小編有弄一個(gè)交流,互問(wèn)互答,資源共享的交流學(xué)習(xí)基地,如果你也是Python的學(xué)習(xí)者或者大牛都?xì)g迎你來(lái)!㪊:548+377+875!一起 學(xué)習(xí)共同進(jìn)步!

幾點(diǎn)說(shuō)明

首先,因?yàn)閷?shí)現(xiàn)非常的簡(jiǎn)單,過(guò)程粗暴、不細(xì)膩,一看代碼就懂(后附全部代碼),故不多介紹實(shí)現(xiàn)過(guò)程和邏輯,以免貽笑大方;其次,有幾點(diǎn)說(shuō)明一下,如果各位有好的想法,請(qǐng)留言告知,便于我優(yōu)化完善;最后,想法大于實(shí)用,突發(fā)奇想,周末又有點(diǎn)時(shí)間而已。
•關(guān)于微信推送消息:用Python的itchat模塊實(shí)現(xiàn),僅僅是登錄、指定好友發(fā)送消息、退出等這樣簡(jiǎn)單的操作,感興趣的可以直接去搜索該模塊,有很多參考資料;
•xlrd、xlwt和xlutils:xlrd打開(kāi)Excel是只讀的,不能修改;xlwt是可以對(duì)Excel文檔修改,但是一般是新建一個(gè)文檔,然后在此基礎(chǔ)上修改,對(duì)于已有內(nèi)容的文檔,就不適用了,因此借用了xlutils,而xlutils在xlrd和xlwt之間建立了一個(gè)橋梁,實(shí)現(xiàn)了讀和寫(xiě);
•在添加新的事項(xiàng)時(shí),需要打開(kāi)Excel文檔,如果沒(méi)有特殊處理,又恰好遇到程序?qū)ξ臋n的保存時(shí)會(huì)報(bào)錯(cuò),因此使用了try…except結(jié)構(gòu),遇到文檔占用,會(huì)跳過(guò)該次掃描,休息指定時(shí)間后重新開(kāi)始;
•對(duì)于未辦結(jié)事項(xiàng),什么時(shí)間推送消息、一天推送幾次,都可以根據(jù)自身需要調(diào)節(jié);
•對(duì)于已辦結(jié)事項(xiàng),沒(méi)有進(jìn)行刪除,而是僅僅改變了格式繼續(xù)保留下來(lái),程序運(yùn)行時(shí),還需要對(duì)這些事項(xiàng)進(jìn)行掃描,自然會(huì)造成資源浪費(fèi),不刪除是因?yàn)橄胗涗涀鲞^(guò)的事項(xiàng),便于日后查看,另外,對(duì)我個(gè)人而言,短時(shí)間內(nèi)也不會(huì)積累大量的事項(xiàng),不會(huì)造成太大的影響,當(dāng)然可以添加一些機(jī)制進(jìn)行處理,比如移動(dòng)到另外一個(gè)工作表中。

代碼

# 導(dǎo)入模塊
import xlrd
from xlutils.copy import copy
import xlwt
import itchat
import datetime
import time
# 使用手機(jī)掃描二維碼登錄微信
def WeChatLogin():
 itchat.login()
# 給指定好友發(fā)送指定內(nèi)容的消息
def SendAMassage(friend, message):
 users = itchat.search_friends(name=friend)
 userName = users[0]['UserName']
 itchat.send(message, toUserName = userName)
# 按照指定格式修改excel表格內(nèi)容
def ModifyContent(row,col,content,sheet,new_remindbook,path,style):
 # 獲取工作表內(nèi)容
 new_sheet = new_remindbook.get_sheet(0)
 # 寫(xiě)入數(shù)據(jù)
 new_sheet.write(row,col,content,style)
 # 保存文件
 new_remindbook.save(path)
# 判斷提醒是否過(guò)期
def Overdue(nowtime,deadtime):
 if deadtime<nowtime:
 return True
 else:
 return False
# 程序運(yùn)行主體
if __name__=='__main__':
 # 首次執(zhí)行標(biāo)志
 first_exec = True
 # 微信登錄
 WeChatLogin()
 # 指定微信消息推送好友
 friend = '君以沫'
 # 備忘本記錄文件地址
 path = r'.記事本.et'
 # 掃描備忘本記錄
 while True:
 # 文件占用標(biāo)志
 occupy = False
 # 打開(kāi)excel文件,獲取文件屬性信息
 remindbook = xlrd.open_workbook(path,formatting_info=True)
 sheet = remindbook.sheet_by_index(0)
 nrows=sheet.nrows
 # 建立副本
 new_remindbook=copy(remindbook)
 # 初始化事項(xiàng)序號(hào)
 mark = 1
 # 初始化message信息
 message='以下事項(xiàng)未辦結(jié):'
 # 執(zhí)行一次備忘本掃描
 for i in range(2, nrows):
 # 如果已辦結(jié)事項(xiàng)或者空事項(xiàng),直接跳過(guò)
 if sheet.cell(i,3).value=='是' or sheet.cell(i,2).value=='':
 continue
 # 獲取事項(xiàng)截止時(shí)間
 deadtime = xlrd.xldate.xldate_as_datetime(sheet.cell(i,2).value, 0)
 deadhour = deadtime.strftime('%H:%M')
 # 獲取當(dāng)前時(shí)間
 nowtime = datetime.datetime.now()
 nowhour=nowtime.strftime("%H:%M")
 # 如果過(guò)期,則將過(guò)期標(biāo)志設(shè)置為是
 if Overdue(nowtime,deadtime):
 # style0
 style0 = xlwt.XFStyle()
 # 設(shè)置單元格背景顏色
 pattern= xlwt.Pattern()
 pattern.pattern=1
 pattern.pattern_fore_colour=22
 style0.pattern=pattern
 # 字體設(shè)置
 font = xlwt.Font()
 font.name = '仿宋_GB2312'
 font.colour_index = 1
 font.height =280
 style0.font = font
 # 邊框設(shè)置
 borders = xlwt.Borders()
 borders.left = xlwt.Borders.THIN
 borders.left = xlwt.Borders.THIN
 borders.right = xlwt.Borders.THIN
 borders.top = xlwt.Borders.THIN
 borders.bottom = xlwt.Borders.THIN
 style0.borders = borders
 # 為過(guò)期事項(xiàng)添加背景色(按指定格式重填)
 try:
 ModifyContent(i,1,sheet.cell(i,1).value,sheet,new_remindbook,path,style0)
 except:
 occupy = True
 print('文件占用中,休息60s...')
 time.sleep(6)
 break
 # style
 style = xlwt.XFStyle()
 # 設(shè)置單元格字體、顏色、字號(hào)
 font = xlwt.Font()
 font.name = '仿宋_GB2312'
 font.colour_index = 0
 font.height =280
 font.bold = False 
 style.font = font
 # 設(shè)置單元格對(duì)齊方式
 alig = xlwt.Alignment()
 alig.horz = xlwt.Alignment.HORZ_CENTER
 alig.vert = xlwt.Alignment.VERT_CENTER
 style.alignment = alig
 # 邊框設(shè)置
 borders = xlwt.Borders()
 borders.left = xlwt.Borders.THIN
 borders.left = xlwt.Borders.THIN
 borders.right = xlwt.Borders.THIN
 borders.top = xlwt.Borders.THIN
 borders.bottom = xlwt.Borders.THIN
 style.borders = borders
 # 按照指定格式寫(xiě)入數(shù)據(jù)
 try:
 ModifyContent(i,3,'是',sheet,new_remindbook,path,style)
 except:
 occupy = True
 print('文件占用中,休息60s...')
 time.sleep(6)
 break
 # 未過(guò)期事項(xiàng),添加到提醒信息中
 else:
 # 截止時(shí)間單獨(dú)事項(xiàng)提醒
 if deadhour == nowhour:
 SendAMassage(friend, sheet.cell(i,1).value)
 message = message+'
'+'['+str(mark)+']'+sheet.cell(i,1).value
 mark=mark+1
 # 如果沒(méi)有被占用
 if not(occupy):
 # 沒(méi)有未辦結(jié)事項(xiàng),結(jié)束循環(huán)
 if len(message)<=8:
 print('here')
 break
 # 首次運(yùn)行消息提醒
 if first_exec:
 SendAMassage(friend, message)
 print(message)
 first_exec = False
 release = False
 # 如果是以下時(shí)點(diǎn),則推送微信消息提醒
 if nowhour in ['08:00','10:00','12:00','14:00','16:00']:
 SendAMassage(friend, message)
 # 其他時(shí)點(diǎn)
 else:
 print('當(dāng)前時(shí)間:'+ nowtime.strftime("%Y%m%d %H:%M:%S")+' '+'休息30秒...' )
 # 半點(diǎn)整點(diǎn)打印未辦結(jié)事項(xiàng)
 if nowhour[3:] in ['30','00']:
 print(message)
 time.sleep(30)
 # 所有事項(xiàng)已辦結(jié)
 message='所有事項(xiàng)已辦結(jié)。'
 SendAMassage(friend, message)
 print(message)
 # 退出微信登錄
 itchat.logout()

---恢復(fù)內(nèi)容結(jié)束---

總結(jié)

以上所述是小編給大家介紹的使用Python制作自動(dòng)推送微信消息提醒的備忘錄,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Python3操作Excel文件(讀寫(xiě))的簡(jiǎn)單實(shí)例

    Python3操作Excel文件(讀寫(xiě))的簡(jiǎn)單實(shí)例

    這篇文章主要給大家介紹了關(guān)于Python3操作Excel文件(讀寫(xiě))的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python3具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • python中IO流和對(duì)象序列化詳解

    python中IO流和對(duì)象序列化詳解

    大家好,本篇文章主要講的是python中IO流和對(duì)象序列化詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • 圣誕節(jié)教你用Python繪制愛(ài)心圣誕樹(shù)

    圣誕節(jié)教你用Python繪制愛(ài)心圣誕樹(shù)

    圣誕節(jié)快要到了,心血來(lái)潮,寫(xiě)段代碼給大家介紹下基于Python繪制愛(ài)心圣誕樹(shù)的方法,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-12-12
  • Python學(xué)習(xí)資料

    Python學(xué)習(xí)資料

    Python學(xué)習(xí)資料...
    2007-02-02
  • Django記錄操作日志與LogEntry的使用詳解

    Django記錄操作日志與LogEntry的使用詳解

    我們既知道如何記錄變更日志,也知道如何獲取變更日志,那么如何才能夠在admin后臺(tái)方便地查看操作日志呢?這篇文章主要給大家介紹了關(guān)于Django記錄操作日志與LogEntry使用的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • Python實(shí)現(xiàn)語(yǔ)音識(shí)別Whisper的使用示例

    Python實(shí)現(xiàn)語(yǔ)音識(shí)別Whisper的使用示例

    Whisper是由OpenAI基于Python開(kāi)發(fā)的能夠識(shí)別多國(guó)語(yǔ)言的語(yǔ)音識(shí)別模型,本文主要介紹了Python實(shí)現(xiàn)語(yǔ)音識(shí)別Whisper的使用示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • 解決tensorflow測(cè)試模型時(shí)NotFoundError錯(cuò)誤的問(wèn)題

    解決tensorflow測(cè)試模型時(shí)NotFoundError錯(cuò)誤的問(wèn)題

    今天小編就為大家分享一篇解決tensorflow測(cè)試模型時(shí)NotFoundError錯(cuò)誤的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • python文件開(kāi)頭聲明UTF-8編碼的幾種常用方式匯總

    python文件開(kāi)頭聲明UTF-8編碼的幾種常用方式匯總

    這篇文章主要介紹了python文件開(kāi)頭聲明UTF-8編碼的幾種常用方式匯總,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python類(lèi)super()及私有屬性原理解析

    Python類(lèi)super()及私有屬性原理解析

    這篇文章主要介紹了Python類(lèi)super()及私有屬性原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python超詳細(xì)實(shí)現(xiàn)字體反爬流程

    python超詳細(xì)實(shí)現(xiàn)字體反爬流程

    大家好,本篇文章主要講的是python查策網(wǎng)字體反爬實(shí)例,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-05-05

最新評(píng)論