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')
```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,001评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,638评论 25 708
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,239评论 2 33
  • 兼职许多工作,没有体会到他们所说的,“入职的第一个月,少写一个零,重算到天明”的悲壮,伤怀的确不少。学校给了一个太...
    先生左左右阅读 241评论 0 0
  • d2bb20c53072阅读 380评论 0 1