今天实战,从8000多个全国手机号码中筛选出北京地区的手机号码。

我们会学习python读取excel和csv文件,对两个文件数据对比。两个数据文件均为随机生成,文末为下载地址。

两个数据文件其中numbers_virtual.csv是手机号码表,segment_virtual.xlsx是号段表,用于标示北京地区。 手机号码编码规则是前3位用于标识运营商,如133表示电信,136表示移动,186表示联通;手机号中4-7位标识地区。

先打开两个文件观察一下:

Windows开始菜单–命令行中‘cmd’–‘jupyter notebook’–’File‘-’New Notebook’,这就完成了新建。因为我把这两个数据文件放在D盘python文件夹下,所以需要先修改一下工作路径:

cd d:\python

两个文件先读哪个?先理一下思路,对手机号码切片,再在号段表里匹配看有没有,所以我们先得有号段表——先读号段表。python有专门的库xlrd读excel文件,就像csv文件一样。

import xlrd

data = xlrd.open_workbook('segment_virtual.xlsx')

table = data.sheets()[0]

cols = table.col_values(0)

xlrd.open_workbook(‘segment_virtual.xlsx’)打开excel表格; data.sheets()[0]读取其中的sheet,这里中括号里用了0表示是第一个sheet; table.col_values(0)用来读取sheet里的列,我们取第1列。如果想知道cols个什么类型,可用print打印,发现是unicode格式的列表。

接下来读号码表

users = []

import csv

with open('numbers_virtual.csv','rb') as f:

reader = csv.reader(f)

for i in reader:

users.append(i[0])

这里不过多解释,和之前文章一样。需要说明的是 users.append(i[0])这句,这里用了i[0],因为i是一个含有单元素的列表,所以我们用[0]把它取出来,再放到users这个列表里。

接下来做匹配,如果users里面的每个号码自身第4-7位这个4位数,在cols这个号段表里能找到,那么就打印这个号码:

for number in users:

segment = number[3:7]

if segment in cols:

print number

这样我们就从全国拿出了北京地区的用户,同样的方法还可以拿出北京地区移动用户,这个留作练习。

两个数据文件下载地址链接: 链接: http://pan.baidu.com/s/1qYw8CCO 密码: zi4g

最后贴下随机生成11位手机号码的代码:

def createPhone():

prelist=["130","131","132","133","134","135","136","137","138","139","147","150","151","152","153","155","156","157","158","159","186","187","188"]

return random.choice(prelist)+"".join(random.choice("0123456789") for i in range(8))

numbers = []

for i in range(100000):

numbers.append(createPhone())

python手机_Python手机号码匹配相关推荐

  1. python判断手机号运营商_python手机号码运营商归属测试

    python;gutter:true;">#手机号码测试: def number_test(): while True: number = input('Please enter yo ...

  2. python re正则提取ip地址_python 正则表达式匹配IP地址

    一.实验环境 1.Windows7x64_SP1 2.anaconda2.5.0 + python2.7(anaconda集成,不需单独安装) 3.pyinstaller3.0 二.实验目的 从tex ...

  3. python不包含某字符_python正则表达式匹配不包含某几个字符的字符串方法

    python正则表达式匹配不包含某几个字符的字符串方法 一.匹配目标 文件中所有以https?://开头,以.jpg|.png|.jpeg结尾的字符串 二.尝试过程 1) 自然想到正则表达式r'(ht ...

  4. python子串匹配_Python正则表达式如何匹配子串

    Python正则表达式有很多的时候需要我们进行子串的匹配,不单在进行替换的时候需要进行,在很多的地方都会用到这些代码.下面我们就来详细的学习如何用Python正则表达式获取自己想得到的匹配子串. 获取 ...

  5. python手机版编程-手机编python

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 前言 在手机上运行python需要用一个软件,叫qpython3l,当然 ...

  6. python opencv图像匹配_关于python:OpenCV功能匹配多个图像

    如何使用FLANN优化许多图片的SIFT功能匹配? 我有一个从Python OpenCV文档中获取的工作示例.然而,这是将一个图像与另一个图像进行比较而且速度很慢.我需要它来搜索一系列图像(几千个)中 ...

  7. python编程语言_python编程语言的简要历史

    python编程语言 The Python programming language is a general-purpose programming language that has carved ...

  8. 2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?

    2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?编程界的王者是渐落寞的Java还是大火的Python? 是不是你们也喜 ...

  9. python list查找元素_使用python list 查找所有匹配元素的位置实例

    使用python list 查找所有匹配元素的位置实例 如下所示: import re word = "test" s = "test abcdas test 1234 ...

最新文章

  1. 检测DTMF信号中的时间间隔
  2. 值得期待的.Net Micro Framework 3.0
  3. 学习CSS 不错网址
  4. 材料模拟python_用Python模拟无限生成器
  5. [云炬创业基础笔记] 第四章测试5
  6. centos 7安装_VMware Workstation安装centos
  7. 目标跟踪-粒子滤波算法
  8. C语言博客作业06--结构体文件
  9. 另存为里面没有jpg_CAD图不会转JPG?教你两个方法,从此CAD格式转换不再烦恼
  10. Tomcat下载与安装
  11. Https之SSL原理
  12. vm虚拟机修改物理时间_GPU虚拟机创建时间深度优化
  13. NginxWebUI - 图形化的 Nginx 配置管理工具
  14. 继电反馈法自整定_PID控制及整定算法
  15. Excel,WPS如何同时冻结行与列
  16. 支付宝APP退款功能开发
  17. word替换功能 如何将相同的内容,替换为依次排列的数字编号
  18. 中国没有掌握的尖端技术_适用于所有人的尖端AAA遮光技术
  19. 基于MATLAB实现电磁场的动画演示
  20. 拼多多店铺所有商品API接口(整店商品列表查询接口)

热门文章

  1. 英频杰Indy固件手册中文版(二)
  2. Au 入门系列之九:多轨混音
  3. 微信小程序录音上传php代码,小程序实现录音上传功能
  4. digispark开发板烧写BootLoader固件升级Attiny85救砖之路
  5. java在线答题_java在线答题系统
  6. 计算机毕设(附源码)JAVA-SSM教师教学质量评价系统
  7. M1安装SketchUp Pro 2021 for Mac(草图大师2021)中文版 支持Big Sur 已解决闪退问题
  8. BUGKU 聪明的小羊
  9. Python赚钱千万不能有加法思维
  10. OCP考试时间和及格线