描述
编写一个 Python 程序,读取data.in文件中的数据(utf-8编码),将其中的姓名、身份证、手机号码部分信息替换成
*`进行脱敏处理,结果输出到data.out文件中。
格式
输入
读取文件data.in。
输出
结果存至data.out。
样例
data.in文件内容
姓名:周紫薇
居住地:北京
身份证号:110101199003073597
手机号:19838855767
姓名:广雨旋
居住地:上海
身份证号:310101199003074538
手机号:18334444671
姓名:国天欣
居住地:广州
身份证号:440103199003071398
手机号:17131292567
姓名:高白桃
居住地:深圳
身份证号:440303199003078179
手机号:15725375874
Copy
data.out文件内容
姓名:薇**
居住地:北京
身份证号:110101********3597
手机号:198****5767
姓名:旋**
居住地:上海
身份证号:310101********4538
手机号:183****4671
姓名:欣**
略...
代码
import re
with open('data.in', 'r', encoding='utf-8') as f:
data = f.read()
#把所有名字都逆序
data = re.sub(r'姓名:(.{2})(.{1})(.*)', r'姓名:\3\2\1', data)
#再只保留第一个字,其他的变成*
data = re.sub(r'姓名:(.{1})(.{1})(.*)', r'姓名:\1**', data)
#再处理身份证号
data = re.sub(r'身份证号:(.{6})(.{8})(.*)', r'身份证号:\1********\3', data)
#再处理手机号
data = re.sub(r'手机号:(.{3})(.{4})(.*)', r'手机号:\1****\3', data)
#写入文件
with open('data.out', 'w', encoding='utf-8') as f:
f.write(data)
#输出
print(data)