编写程序,实现以下功能假设我们有一份文件(编码格式UTF 8),文件中包含了很多个人隐私信息。现在需要份去除其中敏感信息的版本,将文件中 所有手机号的4~7位和身份证号的7- 14位用*替换。示例:如果读入文件内容为: 张三居住地:武汉身份证号: 4201111 99909091234手机号: 13013013130 输出结果是: 张三居住地:武汉身份证号:420111****1234手机号:130****3130输入格式 读取附件的文件 输出格式 张三居住地:武汉身份证号:420111*****1234手机号:130****3130Python
时间: 2023-07-01 22:27:52 浏览: 127
可以使用正则表达式来实现这个功能。具体的步骤如下:
1. 读取文件内容。
2. 使用正则表达式匹配所有的手机号和身份证号,并将符合要求的部分用*替换。
3. 将替换后的内容写入新的文件中。
下面是示例代码:
```python
import re
# 读取文件内容
with open('input.txt', 'r', encoding='utf-8') as f:
content = f.read()
# 匹配手机号和身份证号并替换
content = re.sub(r'(1\d{2})\d{4}(\d{4})', r'\1****\2', content)
content = re.sub(r'(\d{7})\d{7}(\w{1})', r'\1******\2', content)
# 写入新文件
with open('output.txt', 'w', encoding='utf-8') as f:
f.write(content)
```
其中,正则表达式`'(1\d{2})\d{4}(\d{4})'`用于匹配手机号,`r'\1****\2'`用于将手机号的4~7位用*替换。正则表达式`'(\d{7})\d{7}(\w{1})'`用于匹配身份证号,`r'\1******\2'`用于将身份证号的7~14位用*替换。
注意,在实际使用中,需要根据具体的需求进行适当的修改。
阅读全文