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 BeautifulSoup设置页面编码的方法
Apr 03 Python
Python字符串切片操作知识详解
Mar 28 Python
python中下标和切片的使用方法解析
Aug 27 Python
Python箱型图绘制与特征值获取过程解析
Oct 22 Python
基于python中__add__函数的用法
Nov 25 Python
postman和python mock测试过程图解
Feb 22 Python
python解析xml文件方式(解析、更新、写入)
Mar 05 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
Mar 23 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
Apr 27 Python
C++和python实现阿姆斯特朗数字查找实例代码
Dec 07 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
Feb 04 Python
python爬取youtube视频的示例代码
Mar 03 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语法(2)
2006/10/09 PHP
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
基于php冒泡排序算法的深入理解
2013/06/09 PHP
PHP Switch 语句之学习笔记
2013/09/21 PHP
查找php配置文件php.ini所在路径的二种方法
2014/05/26 PHP
CodeIgniter模板引擎使用实例
2014/07/15 PHP
Smarty使用自定义资源的方法
2015/08/08 PHP
thinkphp命名空间用法实例详解
2015/12/30 PHP
WordPress后台中实现图片上传功能的实例讲解
2016/01/11 PHP
PHP下的浮点运算不准的解决方法
2016/10/27 PHP
PHP基于openssl实现非对称加密代码实例
2020/06/19 PHP
JavaScript-世界上误解最深的语言分析
2007/08/12 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
js操作输入框提示信息且响应鼠标事件
2014/03/25 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
2016/04/03 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
Angular2 组件通信的实例代码
2017/06/23 Javascript
Vue2 模板template的四种写法总结
2018/02/23 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
2020/02/13 Javascript
[01:14]DOTA2亚洲邀请赛小组赛赛前花絮
2017/03/27 DOTA
实例解析Python中的__new__特殊方法
2016/06/02 Python
Python使用QQ邮箱发送Email的方法实例
2017/02/09 Python
python做反被爬保护的方法
2019/07/01 Python
Python小白垃圾回收机制入门
2020/06/09 Python
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
2018/08/28 HTML / CSS
法学专业毕业生自荐信范文
2013/12/18 职场文书
迎元旦广播稿
2014/02/22 职场文书
工程质量承诺书范文
2014/03/27 职场文书
个人承诺书怎么写
2014/05/24 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
javascript Number 与 Math对象的介绍
2021/11/17 Javascript
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫
Minikube搭建Kubernetes集群
2022/03/31 Servers