您的位置:

python读取身份证号码(python提取身份证信息)

本文目录一览:

用Python校验身份证号码真伪

#这个算法都给了,应该比较简单吧。我也很菜,随意写了一个。异常没做,你可以自##己加一下。做一些验证过滤。不知道随机是不是真是随意随机,我没有按照身份证规##则做随机。是真的随机了18位。。。 如果你有规则,也可以自己写一个。

import random

yushu=[x for x in range(0,11)] 

ma=['1','0','X','9','8','7','6','5','4','3','2','1']

def yanzheng(nid):

dicma=dict(zip(yushu,ma))

sum=0

for x,y in enumerate(nid[:-1]):

sum+=((2**(18-x-1))%11)*int(y) #17位对应系数相乘的和

    if nid[-1]==dicma[sum%11]: #校验码对照

    return '%s True'%nid

    else:

    return '%s False'%nid

def readfile(fname):

f=open(fname,'rb')

for line in f.readlines():

print  yanzheng(line.strip())

f.close()

def randnum():

idstr=''

for i in range(17): #前17位随机

idstr+=str(random.randint(0,9))

idstr+=random.choice(ma) #最后一位从列表种随意一个,因为有X

return idstr

if __name__=="__main__":

nid=raw_input('Please enter your ID: ') #用户输入ID,没做任何验证

print yanzheng(nid)  #验证身份证

readfile('id.txt')   #从文件读出来 再验证

print yanzheng(randnum())  #随机一个 在验证

python3.8.3 控制台提示输出身份证号,并输出接入的数据的位数?

a=input(“身份证号码:”)

print(len(a))

#len()这个方法的作用是检测数据的长度。

Python怎么用正则表达式匹配全省身份证号前六位

导入re模块:

import re

idCardPattern = r'44\d{15}(\d|x)' #比如广东省身份证以44开头

str1 = '4405821988110812180x' #要比较的字符串

m=re.compile(idCardPattern).match(str1)

print("Match: " + str(m.group()))

以上求示例在Python3

下测试通过,可匹配18位号码。只要找前6位号码改为:idCardPattern

=

r'44\d{4}'

如何利用Python输入身份证号码,输出后用*将出生日期覆盖?

#实验用的身份证号码是随便乱输的,如果需要增加一些其他功能,私信我

#这个不能识别生日的日期是否有异常(比如说不能识别日期是否大于31天)

try:

number = input('请输入你的身份证号码:')

int(number)#检测是否全为数字

if len(number) != 18:

int('a')#手动异常

number = number[:6] + '*' * 8 + number[-4:]

print()

except:

print('你输入的有异常!')