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