如何使用表格中的信息群发微信消息?

  • 如何读取csv? →   使用内置模块csv
  • 如何按对应信息发送到微信?→  使用第三方库wxpy

以下代码素材自取:链接:https://pan.baidu.com/s/1nmzgCr_wwttWUgYwnc2eIg   提取码:dwlw

import csv
from wxpy import *
import time # 运行代码之前需要先将表格里的姓名换成你的朋友的微信名字。 def read_info():
f = open(r'F:\temp\Script_Day10/sample.csv','r',encoding='utf-8')
reader = csv.DictReader(f)
return [info for info in reader]#[{},{},{}] #'xx-同学请于 xx 时间参加 xx 课程,课程地址是 xxx。收到请回复,谢谢'
def make_msg(raw_info):
t = '{n}-同学请于{t}时间参加{s}课程,课程地址是{a}。收到请回复,谢谢!'
return [t.format(n=info['姓名'],
t=info['上课时间'],
s=info['课程'],
a=info['上课地址']
) for info in raw_info]
# -> list ['xxx','xxx']
def send(msg_list):
bot = Bot()
for msg in msg_list:
fren_name = msg.split('-')[0]
f = bot.friends().search(fren_name) # list
if len(f) == 1:
f[0].send(msg)
else:
print(fren_name)
print('Please check this name')
time.sleep(5)
if __name__ == '__main__':
raw_info = read_info()
msg_list = make_msg(raw_info)
send(msg_list)

现在要给4个人发送不同的邀请信息,销售给了你一份 csv 名单,但名单里人是不全的,只有其中3个人。则需发送消息给名单上的人,打印不在名单上的那个人,代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/2/22 16:18
# @Author : xiaodai
# coding:utf-8
import csv
import time
from wxpy import * # 将要发送的好友的名字存到list中
FRIENDS = ['王', '君', '姐', '小明']
CSV_PATH = r'F:\temp\upload_pic/MeetingMsg.csv' # 定义函数获取csv中的内容
def read_csv(path):
f = open(path, 'r', encoding='utf-8')
reader = csv.DictReader(f)
# print([info for info in reader])
return [info for info in reader] # 定义获取发送内容的函数
def get_msg(infos, name):
template = "{name},提醒下,{time}记得来参加{event},地点在{location},{note}"
for info in infos:
if info['微信昵称'] == name:
msg = template.format(
name=info['微信昵称'],
time=info['时间'],
event=info['事件'],
location=info['地址'],
note=info['备注']
)
return msg
# 如果在infos列表中没有找到对应的微信昵称,则输出None
return None # 定义用于群发操作的函数
def send_to_friends(infos, friends):
# 初始化微信机器人
bot = Bot()
for friend in friends:
# 搜素好友
friend_search = bot.friends().search(friend)
# 如果搜索结果仅有一个,则发送图片,否则返回错误信息
if len(friend_search) == 1:
msg = get_msg(infos, friend)
if msg:
friend_search[0].send(msg)
else:
print("发送失败!用户名不在csv中:" + friend)
else:
print("发送失败!请检查用户名:" + friend)
time.sleep(3) # 调用群发函数
send_to_friends(read_csv(CSV_PATH), FRIENDS)

python-----定制群发微信消息的更多相关文章

  1. 使用Python发送企业微信消息

    准备工作: 到企业微信官网,注册一个企业:登录企业微信后台,创建一个“自建”应用, 获取企业ID.agentid.secret这3个必要的参数:在企业微信的通讯录中,创建多个测试账号:在手机端安装“企 ...

  2. 【玩具】使用Python自动化发送微信消息进行订水

    事情是这样的,我知道淘宝上有卖一种USB接口的大按钮,估计是给工厂或者医院之类的场景设计的,样子长这样: 然后我就一直挺想搞一个的,不为别的,就是玩,但是想来想去也没想到这玩意儿对我而言能有啥用途,就 ...

  3. Python定制化天气预报消息推送

    sansui-Weather 代码码云 介绍 定制化天气预报消息推送(练手小脚本) Python脚本实现天气查询应用,提醒她注意保暖! 功能介绍 天气信息获取 当天天气信息提示 第二天天气信息提示 网 ...

  4. Python+wxpy 实现微信消息轰炸

    需要导入wxpy,在终端中输入以下命令即可 pip install wxpy 如果没有pip先安装pip,安装好了的直接输入命令即可,安装好了但是显示没有安装的可能是没有将pip添加到PATH中,需要 ...

  5. Python 发送企业微信消息

    1.获取企业微信信息 1)我的企业 --> 企业信息 --> 企业ID 2)创建一个应用,记录该应用的 AgentId.Secret 2.python代码 #!/usr/bin/env p ...

  6. python实现发送微信消息

    import json from threading import Timer from wxpy import * import requests import urllib.parse def g ...

  7. Python实现微信消息防撤回

    微信(WeChat)是腾讯公司于2011年1月21日推出的一款社交软件,8年时间微信做到日活10亿,日消息量450亿.在此期间微信也推出了不少的功能如:“摇一摇”.“漂流瓶”.“朋友圈”.“附近的人” ...

  8. python 全栈开发,Day103(微信消息推送,结算中心业务流程)

    昨日内容回顾 第一部分:考试题(Python基础) 第二部分:路飞相关 1. 是否遇到bug?难解决的技术点?印象深刻的事? - orm操作费劲 - 最开始学习路由系统时候,匹配规则: 答案一: 有, ...

  9. python使用itchat发送微信消息提醒

    最近在学习一点python,先找了找有趣的应用,实际修改跑了一下提高兴趣程度. 找到itchat,它的简介是这样的: “itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单. ...

随机推荐

  1. LuoguP2320/CF1037A 用二进制表示数的奥妙重重方法 By cellur925

    题目描述 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政. 有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了 ...

  2. Jamie and Interesting Graph CodeForces - 916C

    http://codeforces.com/problemset/problem/916/C 好尬的题啊... #include<cstdio> #include<algorithm ...

  3. XON/OFF

    #define XON 0x11#define XOFF 0x13查找ASCII码表,这两个对应的是DC1(设备控制1)和DC3(设备控制3) X/ON和X/OFF为开启和关闭发送器的信号.X /ON ...

  4. 死磕 java并发包之AtomicInteger源码分析

    问题 (1)什么是原子操作? (2)原子操作和数据库的ACID有啥关系? (3)AtomicInteger是怎么实现原子操作的? (4)AtomicInteger是有什么缺点? 简介 AtomicIn ...

  5. html5表单新增的元素与属性

    1.表单内元素的form属性 在html4中,表单内的从属元素必须书写在表单内部, 而在html5中,可以把他们书写在页面上任何地方, 然后为该元素指定一个form属性,属性值为该表单的id,这样就可 ...

  6. [BZOJ1053][SDOI2005]反素数ant 数学

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1053 假设这个最大的反素数为$x$,那么$1<p<x$中数的因子数都没有$x$ ...

  7. IntelliJ IDEA openfire 使用IntelliJ IDEA 部署OPENFIRE 服务端

    用MyEclipse部署OF的步骤,网上有很多,可以自行google,这里要记录的是用据说最好用的JAVA编辑器IntelliJ IDEA来部署OF服务端.试了好多下,终于成功了,记录下. 直接上图吧 ...

  8. html文本溢出显示省略字符的两种常用方法

    方法一:使用CSS溢出省略的方式解决 解决效果如下: css代码: display: -webkit-box; display: -moz-box; white-space: pre-wrap; wo ...

  9. 【人工智能系列】python的Quepy库的学习

    第一篇 了解 什么是Quepy quepy是一个Python框架改造自然语言问题在数据库查询语言查询.它可以很容易地定制不同类型的问题,在自然语言和数据库查询.因此,用很少的代码,你可以建立自己的系统 ...

  10. Python 使用random模块生成随机数

    需要先导入 random  模块,然后通过 random 静态对象调用该一些方法. random() 函数中常见的方法如下: # coding: utf-8 # Team : Quality Mana ...