2022.3.19补充

在执行bat文件时遇到报错

但是这个python执行命令我放在pychaem的terminal里是能运行的。
然后查到可能是我windows的环境变量没设置上python所在环境,导致没找到ssl相关的包。
于是在系统环境变量中加上

E:\xxx\Anaconda3\envs\xxx;
E:\xxx\Anaconda3\envs\xxx\Scripts;
E:\xxx\Anaconda3\envs\xxx\Library\bin;

其中第一行是你所选择的python的目录路径,其他两行以此类推


以下是原文

思路

  • 注册天气数据接口
  • 接口调用方式在文档中可以查看。有两种验证方式,我们现在选择简单的一种:仅用私钥认证
  • 使用cn2an包将周期几翻译成中文数字
  • 弹窗用plyer包
  • 使用smtplib发邮件,具体做法可以参考之前的文章 python发邮件极简版
  • 关于定时功能,linux的话可以用crontab,window的话可以用系统自带的任务计划程序

注册天气接口

  1. 首先,访问 心知天气,进行登录或者注册操作,然后在控制台上创建一个免费版的项目,创建后,项目信息为:

重点是这个私钥,后面会用到

代码

# coding=utf-8import requests
from plyer import notification
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import datetime
import cn2an"""
plyer是用来显示弹窗的模块
安装命令:pip install plyer
"""params = {"key": "xxx", #  这个填入私钥"location": "深圳",  # 查询地点设置为访问IP所在地"language": "zh-Hans","unit": "c",
}url = "https://api.seniverse.com/v3/weather/now.json"# 获取数据
r = requests.get(url, params=params)# 解析数据
data = r.json()["results"]address = data[0]["location"]['path']  # 地点
temperature = data[0]['now']["temperature"]  # 温度
text = data[0]['now']["text"]  # 天气情况# 日期
date = datetime.date.today().strftime("%Y-%m-%d")
# 星期几
weekday = datetime.date.today().weekday() + 1
# 用cn2an包将阿拉伯数字转为中文数字
weekday = cn2an.an2cn(weekday)# 弹窗显示消息
message = f"日期:{date} 周{weekday}\n" + \address + " 当前天气:\n" + \"温度:" + temperature + "℃" + \"\n天气情况:" + text + \"\n爱你宝贝~(^o^)\n""""
标题为“当前天气”
显示10秒钟(timeout参数)
"""
notification.notify(title="当前天气",message=message,timeout=10)def send_email(subject, email_content, toaddr='xxx@qq.com'):"""发送邮件Parameters----------subject: 邮件标题email_content: 邮件内容toaddr: 收件人邮箱,有多个收件人时可用分号分开Returns-------"""# 发件人邮箱账号fromaddr = 'xxx@qq.com'# 发件人邮箱密码passwd = 'xxx'# SMTP服务器与端口,需要去邮箱内的设置里查看server = smtplib.SMTP_SSL('smtp.exmail.qq.com', port=465)server.login(fromaddr, passwd)message = MIMEText(email_content, 'plain', 'utf-8')# 模仿邮件内的发件人信息格式,防止被识别为垃圾邮件message['From'] = 'xxx<xxx@qq.com>'message['To'] = toaddrmessage['Subject'] = Header(subject, 'utf-8')receiver = message['To'].split(';')server.sendmail(fromaddr, receiver, message.as_string())server.quit()send_email("2022-03-18天气", message)

定时执行

这里仅展示window的定时设置:

首先将刚才的脚本命名为demo.py,并在同级目录下新建一个文件,命名为 weather.bat,在其中输入

python执行器的路径 demo.py的路径

举个例子

E:\xxx\Anaconda3\envs\xxx\python D:\xxx\Weather\demo.py

保存 weather.bat后,

在桌面右键 计算机(我的电脑)-> 管理 -> 计算机管理 -> 系统工具 -> 任务计划程序 -> 创建基本任务 -> (填写任务名称和描述)下一步 -> 设置触发器(我自己选择登陆时执行)-> 启动程序 -> 填入程序路径 (我的就是D:\xxx\Weather\weather.bat)-> 完成

效果展示

参考 https://www.jb51.net/article/212558.htm
参考 https://blog.csdn.net/submarineas/article/details/91142067

用python定时给女友发天气预报并给自己弹窗相关推荐

  1. python 倒数两列_100行Python代码实现每天不同时间段定时给女友发消息

    这篇文章主要介绍了100行Python代码,每天不同时间段定时给女友发消息,本文给出了实现思路,代码简单易懂非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下 我忘了,会写程序的人哪里的女朋友. ...

  2. python写生日祝福语_脱单狗福利,100行Python代码,每天不同时间段定时给女友发消息...

    用python就可以给女友定时发提示消息了,而且不会漏过每一个关键时刻,每天早上起床.中午吃饭.晚上吃饭.晚上睡觉,都会准时发消息给她了,而且还可以让她学习英语单词哦! 在生日来临之时,自动发祝福语. ...

  3. 用 Python + Itchat 写一个爬虫脚本 每天定时给女友发微信暖心话

    序: 很多小姐姐对于程序员男朋友印象大多是木讷的形象,小编要正义凌然的在此发声,程序员男友绝对不是你认为的死板,他们表达的方式其实更独特,更能温暖到你的心田. 怎么浪漫?看这儿它不就来了吗.!? 项目 ...

  4. python 定时给女朋友发QQ邮件

    1-安装库 pip install PyEmail 或 pip install email -i https://pypi.tuna.tsinghua.edu.cn/simple/pip instal ...

  5. 用python给女朋友惊喜100天快乐_100行Python代码实现每天不同时间段定时给女友发消息...

    每天不同时间段通过微信发消息提醒女友 简介 有时候,你很想关心她,但是你太忙了,以至于她一直抱怨,觉得你不够关心她.你暗自下决心,下次一定要准时发消息给她,哪怕是几句话,可是你又忘记了.你觉得自己很委 ...

  6. 脱单狗福利!每天不同时间段给女友定时给女友发消息,不错过早上起床、中午吃饭、晚上吃饭、晚安时间!

    目录 每天不同时间段通过微信发消息提醒女友 简介 编写思路 使用教程 演示图片 完整源代码 每天不同时间段通过微信发消息提醒女友 简介 有时候,你很想关心她,但是你太忙了,以至于她一直抱怨,觉得你不够 ...

  7. 脱单狗福利!每天不同时间段给女友定时给女友发消息,不错过早上起床、中午吃饭、晚上吃饭、晚安时间!...

    [TOC] 每天不同时间段通过微信发消息提醒女友 简介 有时候,你很想关心她,但是你太忙了,以至于她一直抱怨,觉得你不够关心她.你暗自下决心,下次一定要准时发消息给她,哪怕是几句话,可是你又忘记了.你 ...

  8. 让python每日给女友发情话早安

    如何让python每日清晨给女友一句暖心早安 2.0版本 带图片 自定义名称 非订阅号 教程代码已经发布:点我点我 先看效果: 微信测试号注册 · 首先打开微信接口测试号,因为这个消息是从接口号发出的 ...

  9. 前女友发来加密的 “520快乐.pdf“,我用python破解开之后,却发现。。。

    大家好,我是Lex 喜欢欺负超人那个Lex 520收到前女友发来的加密PDF文件,说打开之后有惊喜,难道是要复合? 我用python破解开之后,却发现... 划重点:1.如何使用python给pdf设 ...

最新文章

  1. SpringBoot-web开发(三): 模板引擎Thymeleaf
  2. jetson nano 安装 onnx
  3. 微信路况会不会超越地图导航?
  4. android intent.putextras,关于android:如何使用putExtra()和getExtra()来表示字符串数据
  5. Node Sass does not yet support your current environment
  6. python统计分析---6.主成分分析
  7. 对一个 复杂的json结果进行取值的例子
  8. Linux学习教程,Linux入门教程(超详细)| 网址推荐
  9. 『转』Dr.Web Security Space 8 – 免费3个月
  10. connect()在UDP连接中的应用一例
  11. Dbgview.exe输出Windows程序调试信息
  12. 【HLS】HTTP Live Streaming draft-pantos-http-live-streaming-14
  13. 用命令行登录并操作数据库
  14. 大数据相关各职位解析
  15. 爬取Google Play中app的用户评论(1)
  16. cdc有哪些rapper_CDC说唱会馆在圈内是一个什么样的存在
  17. 企业生产管理集成的核心工具—MES管理系统
  18. WiFi遇到 无法连接到这个网络 的解决办法记录 ( netsh winsock reset )
  19. NOI 1797:金银岛(C++)
  20. 不想长期打工,可做这5个冷门生意,知道的人不多,利润却不错

热门文章

  1. D435i与速腾聚创(rslidar-16)标定
  2. .net如何自制ActiveX插件并运行在IE浏览器上
  3. c语言合并排序算法_合并排序算法
  4. SPA(单页面应用)设计【自我总结】
  5. 计算机考证需要学历吗
  6. 浅谈百度外卖筛选悬浮框效果的实现
  7. 超越GoPro的ZMER全景相机是如何爆红的
  8. dscp值_ToS与DSCP对照表
  9. TextView ellipsize 省略号
  10. P5278 算术天才⑨与等差数列 题解