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 相关文章推荐
Flask SQLAlchemy一对一,一对多的使用方法实践
Feb 10 Python
python实现的阳历转阴历(农历)算法
Apr 25 Python
SQLite3中文编码 Python的实现
Jan 11 Python
django rest framework之请求与响应(详解)
Nov 06 Python
python实现傅里叶级数展开的实现
Jul 21 Python
python 判断字符串中是否含有汉字或非汉字的实例
Jul 15 Python
python3使用print打印带颜色的字符串代码实例
Aug 22 Python
python根据时间获取周数代码实例
Sep 30 Python
python基于gevent实现并发下载器代码实例
Nov 01 Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 Python
CentOS 7如何实现定时执行python脚本
Jun 24 Python
python 利用Pyinstaller打包Web项目
Oct 23 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获取文件大小的方法
2014/02/26 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
php代码调试利器firephp安装与使用方法分析
2018/08/21 PHP
javascript[js]获取url参数的代码
2007/10/17 Javascript
Javascript 检测、添加、移除样式(className)函数代码
2009/09/08 Javascript
js防止表单重复提交实现代码
2012/09/05 Javascript
页面右下角弹出提示框示例代码js版
2013/08/02 Javascript
jQuery 设置 CSS 属性示例介绍
2014/01/16 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
2017/01/22 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
微信小程序中为什么使用var that=this
2019/08/27 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
python中图像通道分离与合并实例
2020/01/17 Python
python输出pdf文档的实例
2020/02/13 Python
Python安装依赖(包)模块方法详解
2020/02/14 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
python 模块导入问题汇总
2021/02/01 Python
远东集团网络工程师面试题
2014/10/20 面试题
高中班级口号
2014/06/09 职场文书
政协调研汇报材料
2014/08/15 职场文书
学雷锋活动倡议书
2014/08/30 职场文书
医生个人年度总结
2015/02/28 职场文书
房地产销售员岗位职责
2015/04/11 职场文书
唐山大地震的观后感
2015/06/05 职场文书
女性健康讲座主持词
2015/07/04 职场文书
转变工作作风心得体会
2016/01/23 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js