python_分组信息发送器

实现功能:
 
在用户留下的接受信息方式中,有可能有微信,QQ,邮箱,短信多种联系方式,你管理着一份用户信息表,在需要发通知时,无需你对发送方式进行归类再分别发送,程序能帮助你以用户留下的不同方式联系他们。
 
运行结果:
![](http://upload-images.jianshu.io/upload_images/1512874-ff3abe2e690bacd9.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
所有的用户信息维护在一个txt文件中:
>QQ,73465937, Chenxiansheng
WeiXin,ffaazf, Xufuren
DuanXin, 1234567890, Wangxiaojie
Email, 111@163.com, Zenglingdao

设计思路:
读用户信息文件,根据信息文件的第一个关键字判断发送方式,调用相应的发送函数,回到主程序将信息内容发送出去。
 
首先,进行4种发送方式程序的编写:
每种发送发送要接收的参数是发送的内容(message)和发送方式对应的地址(addr)
```
def in_youjian(message,addr):
         printu"发邮件("+message+u")给"+addr
def in_weixin(message,addr):
         printu"发微信("+message+u")给"+addr
def in_QQ(message,addr):
         printu"发QQ("+message+u")给"+addr
def in_duanxin(message,addr):
         printu"发短信("+message+u")给"+addr
```
 
其次,是读取用户信息程序的编写:
```
f=open(custom_info,'r')      #以‘r’读形式打开,用户信息文件
         text=f.readlines()       #调用readlines()函数,读取文件的全部内容存入text中
         forline in text: 
                  x=line.strip().split(',')#使用for循环,对text中的每行内
                                                      容line以‘,’分开,存入x中
```
在x中,读取text中每行获得的x的第一个元素x[0]存储着关于发送方式的信息:QQ,WeiXin,DuanXin,Email信息,所有需使用x[0]去调用函数,方法是把4个函数封装在字典中,用key-value的方式去对应x[0]与函数的关系。
封装函数:
```
send={
         'QQ':in_QQ,
         'WeiXin':in_weixin,
         'DuanXin':in_duanxin,
         'Email':in_youjian
                          }
```
在调用其中的函数时,使用这种方式把函数的参数信息传人:send[key](message,addr),其中,x[0]存储着关于发送方式的信息,x[1]存储着关于发送方式的接受地址信息,所以在读取用户信息程序后面加上:
```
send[x[0]](message,x[1])         #即可调用发送函数
```
现在在读取用户信息的函数中,需要传入的变量就是用户信息文件名custom_info与要发送的通知message,如要发送的是一条股票通知,取函数名gupiao:
```
def gupiao(message,custom_info):
         f=open(custom_info,'r')
         text=f.readlines()
         forline in text:
                  x=line.strip().split(',')
                  send[x[0]](message,x[1])
```
 
测试程序:
```
if __name__=="__main__":
         gupiao(u"000001买,低于8.5买,000002卖,高于11.2卖",'custom_info.txt')
```
    原文作者:Kedi
    原文地址: https://www.jianshu.com/p/0353a8ff5032
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞