3.2.5.4 分析黑名单

来源:互联网 发布:2016年中国老龄化数据 编辑:程序博客网 时间:2024/05/24 15:39

假如你正在开发手机的应用,比如从云中心那里获取到一串黑名单的电话本号码,然而这些电话本的号码是作为一个文本文件返回来的,需要把这些一行一行的文本分析成电信供应商、电话号码、备注信息、标记的次数,其实这个过程就是把序列化的信息转换为结构化的信息,这样才可更方便处理,比如把电话号码拿出来作为拦截的比较。

例子:

text = """18701808546 1位用户诈骗号码 (2015-08-24) 

15396989999 1位用户骚扰号码 (2015-08-23)

15992460848 1位用户诈骗号码 (2015-08-23) 

15625759163 1位用户推销、中介 (2015-08-23)

15994768049 1位用户发送诈骗信息 (2015-08-23)

 

 

18670826757 1位用户诈骗号码 (2015-08-22) 

13141465810 1位用户诈骗号码 (2015-08-22) 

13860039526: 1位用户诈骗号码 (2015-08-22)"""

 

entries = re.split("\n+", text)

print(entries)

 

l = [re.split(":? ", entry, 2) for entry in entries]

print(l)

 

print('\n输出电话号码:')

for phone in l:

    print(phone[0])

 

结果输出如下:

['18701808546 1位用户诈骗号码 (2015-08-24) ', '15396989999 1位用户骚扰号码 (2015-08-23)', '15992460848 1位用户诈骗号码 (2015-08-23) ', '15625759163 1位用户推销、中介 (2015-08-23)', '15994768049 1位用户发送诈骗信息 (2015-08-23)', '18670826757 1位用户诈骗号码 (2015-08-22) ', '13141465810 1位用户诈骗号码 (2015-08-22) ', '13860039526: 1位用户诈骗号码 (2015-08-22)']

[['18701808546', '1位用户诈骗号码', '(2015-08-24) '], ['15396989999', '1位用户骚扰号码', '(2015-08-23)'], ['15992460848', '1位用户诈骗号码', '(2015-08-23) '], ['15625759163', '1位用户推销、中介', '(2015-08-23)'], ['15994768049', '1位用户发送诈骗信息', '(2015-08-23)'], ['18670826757', '1位用户诈骗号码', '(2015-08-22) '], ['13141465810', '1位用户诈骗号码', '(2015-08-22) '], ['13860039526', '1位用户诈骗号码', '(2015-08-22)']]

 

输出电话号码:

18701808546

15396989999

15992460848

15625759163

15994768049

18670826757

13141465810

13860039526

 

在这个例子里,使用re.split("\n+", text)来先把多行空行去掉,这样所有文本紧挨在一起,使用 [re.split(":? ", entry, 2) for entry in entries]来把每一行的文本拆分成可用的信息格式,并且最多分成三组的方式,最后通过遍历列表l就可以得到所有电话号码结果,这样当有来电显示时,就可以判断该号码是否在这些列表里,如果在就把电话挂断,阻挡一切骚扰电话、广告电话,提高整个社会的效率,像这种烦人的电话总会在工作时间打断你,在你刚睡到床上时打来,或者在开车过程中不断打来,带来很大的问题。



蔡军生 QQ:9073204 深圳

1 0
原创粉丝点击