Python读取csv表格,使用微信批量发送信息

场景: 给一个csv表格,其中包括了需要发送的联系人,以及需要通知的事项,然后使用微信进行逐个批量发送
拆解问题:
如何读取csv格式,把信息提取出来
使用csv模块
新手可能不知道读取之后会返回什么类型的结果,所以可以一步一步输出中间变量

import csv
f = open(path, 'r')
reader = csv.DictReader(f)

使用微信给好友批量发送信息

如何登录微信

from wxpy import *
bot = Bot()

如何定位到某个好友

found = bot.friends().search('游否', sex=MALE, city='深圳')
通过 .search() 获得的搜索结果 均为列表

如何给好友发送信息

found.send(msg)

如何制造短信模板?
方案:字符串后使用.format()

代码

import csv
from wxpy import *
import time

path = "/Users/sk/Documents/test.csv"
name = []
times = []
course = []
address = []


#  读csv格式的数据,并返回提取出的数据

def read_info():
    f = open(path, 'r')
    reader = csv.DictReader(f)
    return [info for info in reader]


# 把数据处理成可以发送的短信

def make_mgs(row_msg):
    total_msg = []

    for info in row_msg:
        name.append(info["Column 1"])
        times.append(info["Column 2"])
        course.append(info["Column 3"])
        address.append(info["Column 4"])
    # a = '{name}-同学请于{times}时间参加{course},地址是{address}.收到请回复,谢谢!'
    # a.format(name="sk", times="re", course="fd", address="tes")
    for i in range(1, len(name)):
        t = "{name}-同学请于{times}时间参加{course},地址是{address}.收到请回复,谢谢!".format(
            name=name[i],
            times=times[i],
            course=course[i],
            address=address[i]
        )
        total_msg.append(t)
    return total_msg


# 发送信息

def send(msg):
    bot = Bot()
    for m in msg:
        friend_name = m.split("-")[0]
        f = bot.friends().search(friend_name)
        if len(f) == 1:
            f[0].send(m)
        else:
            print(friend_name)
            print("Please check this name")
    time.sleep(3)


row_info = read_info()
msg = make_mgs(row_info)
send(msg)

笔记及心得

如果不确定,或者不太了解一个新事物的话,一定要先试试水,然后再逐步使用,熟悉它.
如果不太理解csv,就一步一步输出,看其中一步一步的中间量是怎么回事.
dictionary(dict) 字典

面向过程(把大问题分解成函数,逐个完成)
先写框架,搞清楚参数的传递.是否需要返回参数,是否需要接受参数.

写了几个函数,并没有调用,看到没有出现期望的结果.还以为程序出错了,太傻.不调用函数,怎么执行啊

Python笔记

列表解析式 [info for info in reader]
len(list) 返回list的元素个数
for 循环中 range灵活使用

多做事,少害怕
别总是觉得自己不行,怎么就不行,哪方面不行?什么东西是学不会的.从长期来看,没有什么东西是学不会的.
不成为怂到害怕别人不怂的人

常见的问题:
1. 教程上一切正常可以运行,自己敲代码的时候发现出了问题;
2. 自己测试一段简单的代码,明明是对的,但是”看似”一模一样的迁移到工作程序之后,出现了错误.
记住: 变量即是原因
所以此时只需要观察,两者之间的变化有哪些,然后逐步向正确的代码靠拢(即使是形式上,也需要),直至找到原因所在.

阅读一个陌生的文档,一定要严格按照上下顺序,读.不要尝试跳读.可以先浏览一下目录.
对于一个陌生的API接口,可以先在terminal中试试水,不建议在编辑器中测试,因为在terminal中可以输入一段程序,然后输出对应的结果;更方便和直观
需要先测试需要用到的组件,测试完成之后,再进行组合,开始写自己的东西.

要避免使用编程语言的关键字,eg.time, list等 虽然知道这一点,但是使用的时候需要多注意.

阅读文档时要知道自己需要什么东西,否则毫无意义.
遇到知识盲点了,需要查询文档.
先想好自己需要哪些东西,列出来,然后再一一去查询文档.
不要反过来: 直接去看文档,看到这个函数,觉得这个函数一会好像能用到,一会儿又看到一个函数,又感觉能用到;这样做可能会找到很多对自己没有的东西,而且会错过自己真正需要的东西(扫过去的时候,可能没看懂,觉得自己用不到)

要特别注意文档中的note(注解,注意事项等),以特殊颜色标记的提示信息.
getting started 新手入门
guide 指南
reference 参考资料
release note 发布说明
sample code 示例代码
technical note 技术说明
technical Q&A

参考文档:https://github.com/youfou/wxpy

猜你喜欢

转载自blog.csdn.net/tmsshikun/article/details/80963124
今日推荐