编写一个 Python 程序,读取data.txt文件中的数据,将其中的姓名、身份证、手机号码部分信息替换成*进行脱敏处理(见输出示例),结果输出到result.txt文件中。
时间: 2024-05-07 17:22:00 浏览: 187
好的,以下是程序代码:
```python
# 打开文件
with open('data.txt', 'r', encoding='utf-8') as f:
# 读取文件中的内容
lines = f.readlines()
# 遍历每一行数据
for i in range(len(lines)):
# 将每一行数据按照空格分割成列表
line = lines[i].split()
# 对姓名、身份证、手机号码进行脱敏处理
line[0] = line[0][0] + '*'*(len(line[0])-1)
line[1] = '*'*14 + line[1][-4:]
line[2] = line[2][:3] + '*'*4 + line[2][-4:]
# 将处理后的数据拼接成字符串
lines[i] = ' '.join(line) + '\n'
# 将处理后的数据写入文件
with open('result.txt', 'w', encoding='utf-8') as f:
f.writelines(lines)
```
其中,我们对姓名的处理是将第一个字符保留,后面全部替换成*;对身份证的处理是将前14位全部替换成*,最后4位保留;对手机号码的处理是将第4~7位全部替换成*。
相关问题
编写一个 Python 程序,读取data.txt文件中的数据,将其中的姓名、身份证、手机号码部分信息替换成*进行脱敏处理(见输出示例),结果输出到result.txt文件中
假设data.txt中的数据格式为:
```
张三,110101199001011234,13912345678
李四,120101198002022345,13812345678
王五,130101197003033456,13712345678
```
则可以使用下面的Python程序进行脱敏处理并输出到result.txt中:
```python
# 打开data.txt文件,读取数据
with open('data.txt', 'r') as f:
data = f.readlines()
# 对每一条数据进行脱敏处理
for i in range(len(data)):
parts = data[i].strip().split(',')
name = parts[0]
id_card = parts[1]
phone = parts[2]
# 将姓名中的除第一个字以外的所有字替换为*
name = name[0] + '*' * (len(name) - 1)
# 将身份证号码中的除前6位和后4位以外的所有数字替换为*
id_card = id_card[:6] + '*' * (len(id_card) - 10) + id_card[-4:]
# 将手机号码中的中间4位数字替换为*
phone = phone[:3] + '*' * 4 + phone[-4:]
# 将脱敏后的数据写入result.txt文件中
with open('result.txt', 'a') as f:
f.write(f'{name},{id_card},{phone}\n')
```
运行上述程序后,result.txt的内容应该如下所示:
```
张*,110101********1234,139****5678
李*,120101********2345,138****5678
王*,130101********3456,137****5678
```
身份证号和手机号属于个人隐私信息,编一个程序,将用户输入的手机号的4-7位和身份证号的7-14位用 “*” 替换。
为了保护个人信息,你可以编写一个Python程序来处理这个需求。下面是一个简单的示例,它会读取用户输入的手机号和身份证号,并替换指定位置的字符。
```python
def mask_sensitive_info(input_string, masking_length):
# 分割手机号和身份证号的前缀和敏感部分
prefix, sensitive_data = input_string[:masking_length], input_string[masking_length:]
# 使用 "*" 替换敏感数据
masked_data = '*' * len(sensitive_data)
# 返回替换后的字符串
return f"{prefix}{masked_data}"
# 获取用户输入
phone_number = input("请输入您的手机号(格式如13812345678):")
id_card = input("请输入您的身份证号(格式如123456789012345678):")
# 遮盖手机号的第4到7位
masked_phone = mask_sensitive_info(phone_number, 7)
# 遮盖身份证号的第7到14位
masked_id_card = mask_sensitive_info(id_card, 14)
print(f"遮罩后的手机号:{masked_phone}")
print(f"遮罩后的身份证号:{masked_id_card}")
阅读全文