Python实现随机生成有效手机号码及身份证功能示例


Posted in Python onJune 05, 2017

本文实例讲述了Python实现随机生成有效手机号码及身份证功能。分享给大家供大家参考,具体如下:

中国那么大,人那么多,几乎人手一部手机。手机号码已经作为各大互联网站的注册账户。同样,身份证更是如此。以下是生成有效手机号码和身份证号。

身份证需要下载districtcode.txt文件

完整代码如下:

import os
import random
import datetime
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
DC_PATH = BASE_DIR + "districtcode.txt"
# 随机生成手机号码
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))
# 随机生成身份证号
def getdistrictcode(): 
 with open(DC_PATH) as file: 
  data = file.read() 
  districtlist = data.split('\n') 
 for node in districtlist: 
 #print node 
  if node[10:11] != ' ': 
   state = node[10:].strip() 
  if node[10:11]==' 'and node[12:13]!=' ': 
   city = node[12:].strip() 
  if node[10:11] == ' 'and node[12:13]==' ': 
   district = node[14:].strip() 
   code = node[0:6] 
   codelist.append({"state":state,"city":city,"district":district,"code":code})
def gennerator(): 
 global codelist 
 codelist = [] 
 if not codelist:
  getdistrictcode()
 id = codelist[random.randint(0,len(codelist))]['code'] #地区项 
 id = id + str(random.randint(1930,2013)) #年份项 
 da = datetime.date.today()+datetime.timedelta(days=random.randint(1,366)) #月份和日期项 
 id = id + da.strftime('%m%d') 
 id = id+ str(random.randint(100,300))#,顺序号简单处理 
 i = 0
 count = 0
 weight = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] #权重项 
 checkcode ={'0':'1','1':'0','2':'X','3':'9','4':'8','5':'7','6':'6','7':'5','8':'5','9':'3','10':'2'} #校验码映射 
 for i in range(0,len(id)): 
  count = count +int(id[i])*weight[i] 
  id = id + checkcode[str(count%11)] #算出校验码 
  return id
print createPhone()
print gennerator()

运行结果如下:

Python实现随机生成有效手机号码及身份证功能示例

Python 相关文章推荐
python中urllib.unquote乱码的原因与解决方法
Apr 24 Python
详解Python 序列化Serialize 和 反序列化Deserialize
Aug 20 Python
简单了解OpenCV是个什么东西
Nov 10 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
Apr 08 Python
Python3.5基础之NumPy模块的使用图文与实例详解
Apr 24 Python
详解PyCharm+QTDesigner+PyUIC使用教程
Jun 13 Python
简单了解django缓存方式及配置
Jul 19 Python
Pyinstaller 打包exe教程及问题解决
Aug 16 Python
django drf框架自带的路由及最简化的视图
Sep 10 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
Jan 16 Python
Pytest参数化parametrize使用代码实例
Feb 22 Python
2021年最新用于图像处理的Python库总结
Jun 15 Python
Python中模块pymysql查询结果后如何获取字段列表
Jun 05 #Python
Python实现选择排序
Jun 04 #Python
Python使用pymysql小技巧
Jun 04 #Python
Python常见异常分类与处理方法
Jun 04 #Python
Python实现Linux的find命令实例分享
Jun 04 #Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 #Python
Python安装官方whl包和tar.gz包的方法(推荐)
Jun 04 #Python
You might like
ASP和PHP都是可以删除自身的
2007/04/09 PHP
PHP spl_autoload_register实现自动加载研究
2011/12/06 PHP
如何让CI框架支持service层
2014/10/29 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
2019/04/15 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
HTML node相关的一些资料整理
2010/01/01 Javascript
JavaScript OOP面向对象介绍
2010/12/02 Javascript
javascript setinterval 的正确语法如何书写
2014/06/17 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
AngularJS中的Directive自定义一个表格
2016/01/25 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
当jquery ajax遇上401请求的解决方法
2016/05/19 Javascript
Vue.js路由组件vue-router使用方法详解
2016/12/02 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
深入理解React高阶组件
2017/09/28 Javascript
基于JavaScript中标识符的命名规则介绍
2018/01/06 Javascript
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
vue.js 实现点击展开收起动画效果
2018/07/07 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
2020/03/10 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
python解析html开发库pyquery使用方法
2014/02/07 Python
python检测远程udp端口是否打开的方法
2015/03/14 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
python实现简单的购物程序代码实例
2020/03/03 Python
基于Python下载网络图片方法汇总代码实例
2020/06/24 Python
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
Bluebella法国官网:英国性感内衣品牌
2019/05/03 全球购物
广告语设计及教案
2014/03/21 职场文书
销售提升方案
2014/06/07 职场文书
2014年高二班主任工作总结
2014/12/16 职场文书
解决redis批量删除key值的问题
2022/03/23 Redis