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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章