Python:第三方模块phonenumbers

今天,我双看到了一个模块phonenumbers,它可以用来解析各种手机电话号码。

1.安装phonenumbers

pip install phonenumbers

如果没有报错,打开一个Python文件,输入:

import phonenumbers

2.使用phonenumbers

2.1 解析手机号

import phonenumbers

# 手机号
phone = "+86158xxxxxxx"
number = phonenumbers.parse(phone)

这里我们导入了这个模块,定义了phone为手机号变量,并使用parse类根据手机号创建了一个解析对象。
继续编写:

from phonenumbers import geocoder, carrier

# 打印此电话号码国家的国际编码
print(number.country_code)
# 打印纯号码(去掉国际编码)
print(number.national_number)
# 运营商信息
print(carrier.name_for_number(number, "zh"))
# 地理位置信息
print(gecoder.description_for_number(number, "zh")

第一个是number的属性,用来打印国际编码。
第二个是也是number的属性,用来打印去掉国际编码的号码。
第三个,我们运用了carrier中的name_for_number函数,用来获取这个手机号的运营商,也可以指定显示的语言(zh,en等)。
第四个,我们用了gecoder中的description_for_number函数,用来获取这个手机号的地理信息描述,也可以指定显示的语言(zh,en等)。

2.2 提取手机号

当我们有一段文本,但里面又有电话号码又有其它字符,如何把电话号码提取出来呢?

import phonenumbers

txt = "我是xxx,今年x岁,电话是158xxxxxxx,我的朋友的电话是158xxxxxxx"
m = phonenumbers.PhoneNumberMatcher(txt, "CN")

这里我们phonenumbers库下的PhoneNumberMatcher,读取了文本中的电话号码,设置语言为CN(中文),和上面的不一样,它会返回一个迭代器,我们需要把它转换为list列表类型:

numbers = list(m)

list函数可以把某种数据转化为列表。
然后,我们再用for循环遍历:

for x in numbers:
	print(x.raw_string)

这里打印的是每一项的纯号码。
也可以结合之前的函数,进行下一步分析。


好了,今天的课程就到这儿,感兴趣的还可以点赞收藏一下,谢谢!

猜你喜欢

转载自blog.csdn.net/wangzirui32/article/details/113405173
今日推荐