用python定时给女友发天气预报并给自己弹窗
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的话可以用系统自带的任务计划程序
注册天气接口
- 首先,访问 心知天气,进行登录或者注册操作,然后在控制台上创建一个免费版的项目,创建后,项目信息为:
重点是这个私钥,后面会用到
代码
# 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定时给女友发天气预报并给自己弹窗相关推荐
- python 倒数两列_100行Python代码实现每天不同时间段定时给女友发消息
这篇文章主要介绍了100行Python代码,每天不同时间段定时给女友发消息,本文给出了实现思路,代码简单易懂非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下 我忘了,会写程序的人哪里的女朋友. ...
- python写生日祝福语_脱单狗福利,100行Python代码,每天不同时间段定时给女友发消息...
用python就可以给女友定时发提示消息了,而且不会漏过每一个关键时刻,每天早上起床.中午吃饭.晚上吃饭.晚上睡觉,都会准时发消息给她了,而且还可以让她学习英语单词哦! 在生日来临之时,自动发祝福语. ...
- 用 Python + Itchat 写一个爬虫脚本 每天定时给女友发微信暖心话
序: 很多小姐姐对于程序员男朋友印象大多是木讷的形象,小编要正义凌然的在此发声,程序员男友绝对不是你认为的死板,他们表达的方式其实更独特,更能温暖到你的心田. 怎么浪漫?看这儿它不就来了吗.!? 项目 ...
- python 定时给女朋友发QQ邮件
1-安装库 pip install PyEmail 或 pip install email -i https://pypi.tuna.tsinghua.edu.cn/simple/pip instal ...
- 用python给女朋友惊喜100天快乐_100行Python代码实现每天不同时间段定时给女友发消息...
每天不同时间段通过微信发消息提醒女友 简介 有时候,你很想关心她,但是你太忙了,以至于她一直抱怨,觉得你不够关心她.你暗自下决心,下次一定要准时发消息给她,哪怕是几句话,可是你又忘记了.你觉得自己很委 ...
- 脱单狗福利!每天不同时间段给女友定时给女友发消息,不错过早上起床、中午吃饭、晚上吃饭、晚安时间!
目录 每天不同时间段通过微信发消息提醒女友 简介 编写思路 使用教程 演示图片 完整源代码 每天不同时间段通过微信发消息提醒女友 简介 有时候,你很想关心她,但是你太忙了,以至于她一直抱怨,觉得你不够 ...
- 脱单狗福利!每天不同时间段给女友定时给女友发消息,不错过早上起床、中午吃饭、晚上吃饭、晚安时间!...
[TOC] 每天不同时间段通过微信发消息提醒女友 简介 有时候,你很想关心她,但是你太忙了,以至于她一直抱怨,觉得你不够关心她.你暗自下决心,下次一定要准时发消息给她,哪怕是几句话,可是你又忘记了.你 ...
- 让python每日给女友发情话早安
如何让python每日清晨给女友一句暖心早安 2.0版本 带图片 自定义名称 非订阅号 教程代码已经发布:点我点我 先看效果: 微信测试号注册 · 首先打开微信接口测试号,因为这个消息是从接口号发出的 ...
- 前女友发来加密的 “520快乐.pdf“,我用python破解开之后,却发现。。。
大家好,我是Lex 喜欢欺负超人那个Lex 520收到前女友发来的加密PDF文件,说打开之后有惊喜,难道是要复合? 我用python破解开之后,却发现... 划重点:1.如何使用python给pdf设 ...
最新文章
- Spring security+jwt服务鉴权完整代码
- 快速弄懂内存字节对齐
- 织梦(DEDECMS)首页调用相关投票的方法(自动更新)
- java框架ssh实验报告_基于SSH的实验报告提交系统
- M6315模块连接阿里云物联网MQTT通讯
- Elasticsearch实践(一)基本概念
- MySQL 时间戳(timestamp类型)和时间(datetime类型)的获取/相互转换/格式化
- Android App的破解技术有哪些?如何防止反编译?
- 计算机考研落榜了怎么办,如果,你考研落榜了怎么办?
- 最小生成树-普利姆和克鲁斯卡尔算法
- lucene3.0.3中的Spanquery和Spans介绍
- spring实战笔记_第4章
- 超详细面经分享!@最近考虑换工作的伙伴们
- ABP中的AsyncCrudAppService介绍
- Spring Boot(03)——自动配置
- 都是蹭热点,差距咋就这么大呢?| 拍者手记
- 无线互动会议室方案的视频显示系统
- 超好用的Dock栏快速启动工具:uDock for Mac
- 有什么平价好用的蓝牙耳机?适合学生党的性价比耳机推荐
- 红客专用电脑安全工具箱 V 1.8