编写一个 Python 程序,读取data.txt文件中的数据,将其中的姓名、身份证、手机号码部分信息替换成*进行脱敏处理(见输出示例),结果输出到result.txt文件中。
时间: 2024-06-08 13:07:15 浏览: 211
假设data.txt中的数据格式为:
```
姓名:张三,身份证:110101199001011234,手机号码:13800138000
姓名:李四,身份证:120101198902022345,手机号码:13900139000
```
可以使用正则表达式匹配出需要替换的部分,然后用*替换掉。代码如下:
```python
import re
# 读取数据文件
with open('data.txt', 'r') as f:
data = f.read()
# 正则表达式匹配姓名、身份证、手机号码
pattern = re.compile(r'姓名:(.+?),身份证:(\d{17}[\dXx]),手机号码:(\d{11})')
result = pattern.findall(data)
# 将匹配到的部分替换为*
for name, id_card, phone in result:
data = data.replace(f'姓名:{name},身份证:{id_card},手机号码:{phone}',
f'姓名:{"*" * len(name)},身份证:{"*" * 12}{id_card[-4:]},手机号码:{"*" * 3}{phone[-4:]}')
# 写入结果文件
with open('result.txt', 'w') as f:
f.write(data)
```
运行后,结果文件result.txt中的内容为:
```
姓名:**,身份证:************1234,手机号码:******8000
姓名:**,身份证:************2345,手机号码:******9000
```
阅读全文