arr.sort的排序原理
阿新 • • 發佈:2020-09-21
簡介:在Windows下的網易郵箱大師客戶端中,閱讀郵件時,可以使用快捷鍵Delete刪除郵件,然後自動跳到下一封,如果再按一次Delete鍵,再跳到下一封。為了迅速的閱讀郵件,同時刪除沒有必要的郵件,特地寫了如下指令碼,自用同時放出來共享。
很多人學習python,不知道從何學起。
很多人學習python,掌握了基本語法過後,不知道在哪裡尋找案例上手。
很多已經做案例的人,卻不知道如何去學習更加高深的知識。
那麼針對這三類人,我給大家提供一個好的學習平臺,免費領取視訊教程,電子書籍,以及課程的原始碼!
QQ群:961562169
問題:
1. 如上圖,我積累太多未讀郵件,原因是每天郵件太多,根本看不完,數量馬上到上限了;
2. 我想看到每封郵件;
3. 郵件有時內容太過雞肋,屬於知曉型即可,看完即可刪除;
4. 大多數看完就要刪除,一個個刪除太麻煩;
一句話,需要自動刪除我看完之後覺得沒有用處的郵件。
一個解決方案:
見如下程式碼
import win32api
import time
def fast_email_reading_and_delete(vk_code: int) -> None:
"""
Virtual Key Code reference: https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
"""
print("Running, please switch to the software you are using within 3 seconds!")
time.sleep(3) # use this 3 seconds to switch to the software you use, for example Netease email client
count = 0
while True:
win32api.keybd_event(int(vk_code), 0, 0, 0)
count += 1
if count % 30 == 0: # refresh every 30 seconds to get more email from Netease email server
win32api.keybd_event(int(0x71), 0, 0, 0) # 0x71 is F2 refresh, int is 113
time.sleep(1) # mail reading time
# press space key or right arrow would halt the delete process. 0x20 spacekey 0x27 right arrow key
if win32api.GetAsyncKeyState(int(0x20)) or win32api.GetAsyncKeyState(int(0x27)):
while True:
time.sleep(0.5)
if win32api.GetAsyncKeyState(int(0x20)) or win32api.GetAsyncKeyState(int(0x27)):
break
if __name__ == '__main__':
fast_email_reading_and_delete(0x2E) # 0x2E is DEL key, equivalent int is 46
將來我如果有機會自行開發郵件客戶端,就將自動展現郵件內容(一封接著另一封)、自動刪除(或者歸檔)郵件,作為原始功能提供給使用者。
理論上講,上述指令碼適用於任何有DEL快捷鍵功能的軟體,注意不要把自己的東西搞砸了,自動刪除時間是1秒。
好了,以上程式碼呼叫了Windows的api,所以只能在Windows下執行,Linux下面應該有類似的工具,歡迎留言交流!