创建身份证号

Posted xuelei-0728

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建身份证号相关的知识,希望对你有一定的参考价值。

 1 #!/usr/bin/python3
 2 import random
 3 
 4 # 从"身份证地址对照表.txt"读取地址码和对应的地址,保存为字典
 5 def createIDaddress(file):
 6     D = []
 7     for line in open(file):
 8         if not line[5] == 0:
 9             D.append(line[0:6])
10     return (D)
11 
12 # 随机生日码
13 def createBrithday(sYear=1979,eYear=2009):
14     year = random.randint(sYear,eYear)
15     month = random.randint(1,12)
16     day = random.randint(1,28)
17     berthday = str(year).zfill(4)+str(month).zfill(2)+str(day).zfill(2)
18     return (berthday)
19 
20 # 随机顺序码 1:男 2:女
21 def createRandomCode(numMax = 999,sex = ):
22     code = random.randint(100,numMax)
23     if sex == :
24         if code % 2 == 1:
25             # print(‘性别:男,code‘.format(code))
26             return code
27         else:
28             # print(‘性别:男,code‘.format(code+1))
29             return code+1
30     elif sex == :
31         if code % 2 == 0:
32             # print(‘性别:女,code‘.format(code))
33             return code
34         else:
35             # print(‘性别:女,code‘.format(code+1))
36             return code + 1
37     else:
38         return "输入错误:(男:1 女:2)"
39 
40 # 计算校验码
41 def checkCode(number):
42     S = 43         int(number[0]) * 7 + 44         int(number[1]) * 9 + 45         int(number[2]) * 10 + 46         int(number[3]) * 5 + 47         int(number[4]) * 8 + 48         int(number[5]) * 4 + 49         int(number[6]) * 2 + 50         int(number[7]) * 1 + 51         int(number[8]) * 6 + 52         int(number[9]) * 3 + 53         int(number[10]) * 7 + 54         int(number[11]) * 9 + 55         int(number[12]) * 10 + 56         int(number[13]) * 5 + 57         int(number[14]) * 8 + 58         int(number[15]) * 4 + 59         int(number[16]) * 2
60     mod = S % 11
61     mod_dist = 0:1, 1:0, 2:X, 3:9, 4:8, 5:7, 6:6, 7:5, 8:4, 9:3, 10:2
62     checkMod = mod_dist[mod]
63     return checkMod
64 
65 # 生成二代身份证 参数1:要生成的数量 参数2:男:1 女:2
66 def idNumber(shuliang = 1,sex = ):
67     filePath = /Users/zhaodi/PycharmProjects/python3/学习/自动化测试脚本/txt文档/身份证号地址对照表.txt
68     idAdd = createIDaddress(filePath)
69 
70     L = []  #生成空列表,存放生成的号码
71     while shuliang > 0:
72         addCode = random.choice(idAdd)          # 随机地址码
73         brithady = createBrithday(1949,2009)            #随机生日
74         randomCode = createRandomCode(999,sex)     #随机code码
75         number = str(addCode) + str(brithady) + str(randomCode)  #17位数字
76         cCode = checkCode(number)   #检查码
77 
78         # 合成身份证号
79         id_Card = number + cCode
80         print("身份证号:".format(id_Card))
81         L.append(id_Card)
82         shuliang = shuliang - 1
83     return L
84 
85 idNumber(1,)

 

以上是关于创建身份证号的主要内容,如果未能解决你的问题,请参考以下文章

验证身份证号规则(验证身份证号是否正确)

如何在数据库中利用sql从18位身份证号中截取出生日期,身份证号在reader表中

请教怎么用SQL对比两个表中身份证号字段不一样的数据

Excel身份证号为啥变成了科学计数

excel身份证号如何提取出生日期?

身份证号如何提取信息?