python_分组信息发送器

905 查看

实现功能:

在用户留下的接受信息方式中,有可能有微信,QQ,邮箱,短信多种联系方式,你管理着一份用户信息表,在需要发通知时,无需你对发送方式进行归类再分别发送,程序能帮助你以用户留下的不同方式联系他们。

运行结果:



所有的用户信息维护在一个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
                          }

在调用其中的函数时,使用这种方式把函数的参数信息传人:sendkey,其中,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')