作者| GitPython

来源| GitPython

继上次“点亮网易云音乐灰色歌曲”的文章后,老师开始觉得我是个技术流。

作为辅导员,她手下管着300多人,几乎每天都会有过生日的同学。但是,体贴的她想要及时地为每一位同学发送生日祝福。

可是,数据躺在excel表格中,每次都得筛选出当日过生日的同学,然后,根据筛选出来的名单,再通过微信一个一个的送上祝福。

老师跟我提了一个这样的想法:

能不能做个小工具自动把生日名单筛选出来?

能不能自动地为每位过生日的同学发送定制的祝福?

我想了想,觉得这事可行。

01

编写思路

1)读取学生信息

如果查询当日的日期和学生生日一样的话,就把学生的信息打印出来。获取日期可用time模块。

2)为过生日的同学发送祝福

这一步主要用到“微信名称”,通过微信名称找到该学生,并通过获取的姓名,实现定制生日祝福。

02

实现过程

先来看一下要导入的表格信息。

记得另存为 student_info.csv 文件,放在与py文件同目录下。

微信昵称:wxpy模块是通过它来找到指定的微信好友

姓名:可实现定制消息内容

生日格式:xx-xx-xx

1)读取学生信息

通过Pandas模块,读取学生信息。通过Time模块,获取当日的日期。遍历表格每一行,筛选出符合条件的名单(wxmc),返回一个列表。

 1def get_birthday_student_list():23    # 1.读取学生信息表4    df = pd.read_csv('./student_info.csv')56    # 2.获取当日日期7    now_time = time.strftime("%Y-%m-%d", time.localtime())8    # print(now_time)  # 2019-09-269
10    wx_list = []
11
12    # 3.遍历表格,筛选出当天过生日的同学
13    for index, row in df.iterrows():
14
15        # 找到满足条件的同学,返回一个列表
16        # 当天过生日的同学
17        if now_time == row['birthday']:
18            # print(row['wxnc'], row['birthday'])
19            wx_list.append(row['wxnc'])
20
21    return wx_list

2)发送消息

通过wxpy模块,找到指定的微信好友,并发送消息。如果出现异常,会发送信息到微信传输助手。

 1def send_message(wx):23    # 向每一位过生日的同学发送祝福4    try:5        # 1.对方的微信名称6        my_friend = bot.friends().search(wx)[0]78        # 2.定制消息9        message = "生日快乐!"
10        # 发送消息给对方
11        my_friend.send(message)
12    except:
13        # 出问题时,发送信息到文件传输助手
14        bot.file_helper.send(u"出问题了,赶紧去看看咋回事~")

3)主函数

 1if __name__ == '__main__':23    # 1.获取过生日的学生名单4    wx_list = get_birthday_student_list()56    # 2.利用 wxpy 模块,初始化机器人对象7    bot = Bot()89    # 3.向每一位过生日的同学发送祝福
10    for wx in wx_list:
11        send_message(wx)

03

使用说明

调用程序后,会出现一个二维码,扫码登录微信。等待一会,过生日的同学们就会收到微信祝福了。

在表格里,我把我的小号设置为(2019-09-26)生日。程序会根据我小号的昵称 静下心来,好好阅读。把生日祝福发送过去。

补充说明:

1)还可以自定义一些生日祝福的话语,随机发送给不同的同学,显得更加“私人订制”。

2)后期,需要把文件打包为exe程序,供老师使用。

源码地址关注公众号「GitPython」
后台回复「生日祝福」即可获取!-END-往期精彩回顾
1.我是怎么批量下载百度图片的?2.自动监测Github项目,并打开网页!3.Python实战演练|1234组成的不重复百位数

最近建立了一个GitPython微信交流群
扫描上方二维码,备注py,
我会拉你进群,
与小伙伴们共同交流成长!

我用20多行代码,帮老师开发了一款发送生日祝福的小工具相关推荐

  1. 面对 20 亿行代码,Google 如何管理?

    面对"Google 这家公司有多大?"这种问题,你可能会用收入.股票价格.客户数量或者是形而上学的影响力来回答这个问题.但是,这还不是全部.Google 作为全球最大的互联网公司, ...

  2. 2020 年腾讯新增 20 亿行代码,鹅厂第一编程语言还是它

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:推荐19个github超牛逼项目!个人原创100W +访问量博客:点击前往,查看更多 近日,腾讯发布了<20 ...

  3. 60行代码 5分钟开发一个数字货币行情软件

    本文旨在研究数字货币量化交易.无意中发现,其实一款简易的行情软件可能5真的只要5分钟-就留下这篇教程,希望让更多的人了解到相关的开发.抛砖引玉~ 技术栈: html css js vue elemen ...

  4. 腾讯 2020年新增 20 亿行代码,C++蝉联腾讯最受欢迎的编程语言

    作为国内科技巨头,腾讯的产品早已覆盖到了每个国人手中,不过这家公司对于自身技术一直比较「低调」.3 月 18 日下午,腾讯今天对外发布 2020 年度<腾讯研发大数据报告>,披露了 202 ...

  5. python爬煎蛋妹子图--20多行代码搞定煎蛋妹子图库

    如果说一个人够无聊的话... 就会做一些十分美(wei)丽(suo)的事情啦哈哈哈... 好的,话不多说,进入正题. 正如标题所示,我们今天的目标很简单: 代码要少,妹子要好. 步骤如下: 1. 首先 ...

  6. 5行代码帮你梳理EOS.IO的脉络

    EOS号称Blockchain上的操作系统,且白皮书和开发日志都描述的非常美好,同时也有无数人看好这个项目,但对于一个开源项目来说,再好的愿景,还是需要实际产品的支撑,永远都要记住 Talk is c ...

  7. 40行代码教你利用Python网络爬虫批量抓取小视频

    1. 前言 还在为在线看小视频缓存慢发愁吗?还在为想重新回味优秀作品但找不到资源而忧虑吗?莫要慌,让python来帮你解决,40行代码教你爬遍小视频网站,先批量下载后仔细观看,岂不美哉! 2. 整理思 ...

  8. python爬取小视频-40行代码教你利用Python网络爬虫批量抓取小视频

    /1 前言/ 还在为在线看小视频缓存慢发愁吗?还在为想重新回味优秀作品但找不到资源而忧虑吗?莫要慌,让python来帮你解决,40行代码教你爬遍小视频网站,先批量下载后仔细观看,岂不美哉! /2 整理 ...

  9. 识别字体软件测试,2行代码帮你搞定自动化测试的文字识别

    前言 Airtest是一款 基于图像识别原理 的跨平台UI自动化测试框架,它能够根据大量的 特征点 来识别一个截图在当前画面中的位置,但是它并不能识别出截图中具体包含了什么文字. 而在自动化测试的过程 ...

最新文章

  1. java 同步包_Java并发程序设计(四)JDK并发包之同步控制
  2. 基于Docker + Consul + Nginx + Consul-template的服务负载均衡实现
  3. 机柜服务器选择学问大!
  4. 自定义Dictionary支持线程安全
  5. 重写0-1背包问题的回溯法,使算法能输出最优解
  6. 在Spring MVC应用程序中使用Bean Validation 1.1获得更好的错误消息
  7. 【转】2.3SharePoint服务器端对象模型 之 访问网站和列表数据(Part 3)
  8. CCIE-LAB-第八篇-OSPF前缀压制+MTU+路由汇总
  9. 5.4php-fpm配置,CentOS5.4下配置Nginx0.8.33+PHP5.3+PHP-fpm+MySQL5.5
  10. React-Native 之 TabBarIOS
  11. LeetCode刷题——209. 长度最小的子数组
  12. Yii 2.0.3 Advanced版控制器不能包含大写字母的Bug
  13. cuda10安装_Mmdetection的安装和使用
  14. RQNOJ:PID4 数列
  15. 深耕一线14年,见证云计算风起云涌
  16. 重置海康威视DS-2TD2617B-6/PA测温摄像头
  17. LTE学习理解系列——TDD LTE信源指定时隙配比设置
  18. 如何把二维数组传参给函数
  19. JPEG系列二 JPEG文件中的EXIF(上)
  20. java入口函数_Java 函数入口

热门文章

  1. 凯利公式的原理推导和应用方向
  2. audio标签 FileReader blob转base64 base64转blob 语音
  3. CSS3新增属性——过渡和动画(2D属性,3D动画)
  4. 防伪系统是怎么实现防伪的呢
  5. Forbid consumer 10.100.8.14 access service com.alibaba.dubbo.monitor.MonitorService解决办法
  6. ERP之系统上线后参与运维
  7. python学生信息录入_使用python实现一个简单的学生信息管理系统
  8. (3)单片机演奏我和我的祖国
  9. KUKA机器人通过EthernetKRL控制
  10. rizomuv缩放排布_Unfold 3D/RizomUV从入门到放弃(一)