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实现SVN的目录周期性备份实例
Jul 17 Python
python图书管理系统
Apr 05 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
Jul 02 Python
Python实现基于SVM的分类器的方法
Jul 19 Python
python中property属性的介绍及其应用详解
Aug 29 Python
python使用 request 发送表单数据操作示例
Sep 25 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
Mar 04 Python
python标准库OS模块详解
Mar 10 Python
利用python实现平稳时间序列的建模方式
Jun 03 Python
python中os.remove()用法及注意事项
Jan 31 Python
Python学习之包与模块详解
Mar 19 Python
Python 匹配文本并在其上一行追加文本
May 11 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数据库密码的找回的步骤
2011/01/12 PHP
php中根据某年第几天计算出日期年月日的代码
2011/02/24 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
php cookie中点号(句号)自动转为下划线问题
2014/10/21 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
PHP/HTML混写的四种方式总结
2017/02/27 PHP
JSON 入门指南 想了解json的朋友可以看下
2009/08/26 Javascript
A标签中通过href和onclick传递的this对象实现思路
2013/04/19 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
ArtEditor富文本编辑器增加表单提交功能
2016/04/18 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
原生JS和jQuery操作DOM对比总结
2017/01/19 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
利用javascript如何随机生成一定位数的密码
2017/09/22 Javascript
Vue组件通信的四种方式汇总
2018/02/08 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
安装Node.js并启动本地服务的操作教程
2018/05/12 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
微信小程序select下拉框实现源码
2019/11/08 Javascript
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
python 多进程通信模块的简单实现
2014/02/20 Python
Python实现控制台中的进度条功能代码
2017/12/22 Python
Python面向对象之接口、抽象类与多态详解
2018/08/27 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
关于python3中setup.py小概念解析
2019/08/22 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
英国网络托管和域名领导者:Web Hosting UK
2017/10/15 全球购物
安全先进班组材料
2014/12/26 职场文书
2015年国庆节活动总结
2015/03/23 职场文书
详解Python requests模块
2021/06/21 Python