Python技巧大全

个人成长秘籍之二,打造自己的小助理

2020-02-04  本文已影响0人  DigiHacker
image

我们几乎每时每刻都在刷各种手机app。看看微信有没有人找你 ,看看邮件有没有老板布置的任务,看看新闻有没有大事发生,看看抖音有没有新的傻雕,看看公开课假装学习一下。看起来好像信息时代弄潮儿,其实只沦落为app测试员。

机智如小编,可以写些简单的小脚本收集汇总下信息。但又沦落为自己程序的奴隶。每隔几分钟就跑下自己写的丑陋app,看看有没有更新。这样很不酷啊。什么叫酷,12年前的钢铁侠第一集就给了我们标准答案。所有的信息收集整理和推送都应该交给电脑来做,我们只需要专心注意我们要做的大事上。

如何实现呢?我们需要一个后台程序定时运行任务,推送结果。最简单的解决方案就是用Windows自带的计划任务和电子邮件,步骤如下图

image image image image image

同时你的脚本还需要加入发送邮件功能,如果结果是纯文本的话,在邮件客户端里格式可能会乱,所以最好转成html样式。象pandas直接带to_html方法。代码如下

<pre language="typescript" code_block="true">def send_mail(fromaddr, toaddrs, subject, body):

try:
    if body.startswith('<'):
        msg = MIMEText("<html><body>%s</body></html>"
                       % (fromaddr, toaddrs, subject, body), 'html', 'utf-8')
        msg['From'] = fromaddr
        msg['To'] = toaddrs
        msg['Subject'] = subject
        msg = msg.as_string()
    else:
        msg = ("From: %s\r\nTo: %s\r\nSubject: %s\n\n%s"
               % (fromaddr, ", ".join(toaddrs), subject, body)).encode('utf-8')
    print("Message length is", len(msg))
    server = SMTP_SSL('smtp.qq.com')
    server.set_debuglevel(1)
    server.login("test@qq.com", "ssss")
    server.sendmail(fromaddr, [toaddrs], msg)
    server.quit()
except Exception as e:
    print(e)

if name == 'main':
total = load_all_sites(sites).to_html()
from datetime import datetime

time = datetime.now().strftime("%Y-%m-%d %H:%M")
print(time)
print(str(total))

send_mail("test@qq.com", "test@qq.com", f"报表_{time}", str(total))</pre>

注意时间变量time是最好加到subject里的,一是方便日后追踪,二是防止邮件服务误判为垃圾邮件。至于send_mail的细节,请参阅我之前的文章

上一篇下一篇

猜你喜欢

热点阅读