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 相关文章推荐
在Django框架中编写Context处理器的方法
Jul 20 Python
Python 探针的实现原理
Apr 23 Python
python 判断参数为Nonetype类型或空的实例
Oct 30 Python
PyCharm鼠标右键不显示Run unittest的解决方法
Nov 30 Python
Python中作用域的深入讲解
Dec 10 Python
Django restframework 源码分析之认证详解
Feb 22 Python
对pyqt5之menu和action的使用详解
Jun 20 Python
Python空间数据处理之GDAL读写遥感图像
Aug 01 Python
python可视化篇之流式数据监控的实现
Aug 07 Python
Pytorch DataLoader 变长数据处理方式
Jan 08 Python
jupyter notebook插入本地图片的实现
Apr 13 Python
Python将list元素转存为CSV文件的实现
Nov 16 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
php 禁止页面缓存输出
2009/01/07 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
PHP扩展Memcache分布式部署方案
2015/12/06 PHP
解决laravel(5.5)访问public报错的问题
2019/10/12 PHP
JS 进度条效果实现代码整理
2011/05/21 Javascript
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
jQuery的each终止或跳过示例代码
2013/12/12 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
node.js中的fs.fchownSync方法使用说明
2014/12/16 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
2015/05/04 Javascript
JQuery分屏指示器图片轮换效果实例
2015/05/21 Javascript
jquery实现兼容IE8的异步上传文件
2015/06/15 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
浅谈Angularjs link和compile的使用区别
2016/10/21 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
解决iview打包时UglifyJs报错的问题
2018/03/07 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
2018/11/15 Javascript
面试题:react和vue的区别分析
2019/04/08 Javascript
JavaScript 实现同时选取多个时间段的方法
2019/10/17 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
2020/03/11 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
Python数据类型详解(一)字符串
2016/05/08 Python
单利模式及python实现方式详解
2018/03/20 Python
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
2019/03/26 Python
Python性能测试工具Locust安装及使用
2020/12/01 Python
python实现简单的井字棋游戏(gui界面)
2021/01/22 Python
UNIX文件类型
2013/08/29 面试题
英文版销售经理个人求职信
2013/11/20 职场文书
《会变的花树叶》教学反思
2014/02/10 职场文书
建设单位项目负责人任命书
2014/06/06 职场文书
红色电影观后感
2015/06/18 职场文书
演讲比赛主持词
2015/06/29 职场文书
MySQL修改默认引擎和字符集详情
2021/09/25 MySQL
vue3使用vuedraggable实现拖拽功能
2022/04/06 Vue.js