python身份证号批量升位
时间: 2023-11-01 17:55:29 浏览: 88
身份证号码是一个很重要的个人信息,建议不要随意修改。如果你有特殊需求需要批量升位,可以采用以下Python代码实现:
```python
def id_upgrade(id_list):
new_id_list = []
for id_num in id_list:
if len(id_num) == 15:
id_num = id_num[:6] + '19' + id_num[6:]
id_num = id_num + str(get_verify_bit(id_num))
elif len(id_num) == 18:
id_num = id_num[:6] + '20' + id_num[6:]
new_id_list.append(id_num)
return new_id_list
def get_verify_bit(id_num):
"""计算校验码"""
id_weight = [int(i) for i in '7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2'.split()]
id_check_code = '10X98765432'
id_sum = 0
for i in range(len(id_weight)):
id_sum += int(id_num[i]) * id_weight[i]
id_check_num = id_check_code[id_sum % 11]
return id_check_num
```
其中,`id_list`为需要升位的身份证号列表,函数`id_upgrade`会返回升位后的身份证号列表。如果原始身份证号为15位,则在第7-8位之间插入`19`,然后计算校验码;如果原始身份证号为18位,则在第7-8位之间插入`20`。计算校验码的函数`get_verify_bit`使用了身份证号码校验码的计算规则。
阅读全文