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. Spring security+jwt服务鉴权完整代码
  2. 快速弄懂内存字节对齐
  3. 织梦(DEDECMS)首页调用相关投票的方法(自动更新)
  4. java框架ssh实验报告_基于SSH的实验报告提交系统
  5. M6315模块连接阿里云物联网MQTT通讯
  6. Elasticsearch实践(一)基本概念
  7. MySQL 时间戳(timestamp类型)和时间(datetime类型)的获取/相互转换/格式化
  8. Android App的破解技术有哪些?如何防止反编译?
  9. 计算机考研落榜了怎么办,如果,你考研落榜了怎么办?
  10. 最小生成树-普利姆和克鲁斯卡尔算法
  11. lucene3.0.3中的Spanquery和Spans介绍
  12. spring实战笔记_第4章
  13. 超详细面经分享!@最近考虑换工作的伙伴们
  14. ABP中的AsyncCrudAppService介绍
  15. Spring Boot(03)——自动配置
  16. 都是蹭热点,差距咋就这么大呢?| 拍者手记
  17. 无线互动会议室方案的视频显示系统
  18. 超好用的Dock栏快速启动工具:uDock for Mac
  19. 有什么平价好用的蓝牙耳机?适合学生党的性价比耳机推荐
  20. 红客专用电脑安全工具箱 V 1.8

热门文章

  1. 强化学习之Q-learning算法实战2
  2. 华为2021年会怎么样?放心,会想办法活得更好
  3. 马化腾力挺红米2,却忘记小米是头饿狼,迟早会噬扑微信
  4. 人数超100的微信群非群主无法修改群名称了
  5. Kernel: x86: preempt_count, per-cpu(每个CPU一份的变量)
  6. 开源OA:手把手教你搭建OA办公系统(9)快速搭建企业门户
  7. EtherCAT理论学习笔记【一】-数据帧结构
  8. 关于CAN通讯基础知识点
  9. oracle 的行列转换函数,Oracle行列转换函数
  10. SELECT行列转换