背景描述
兄弟小组来了个脱敏需求,希望将一些文件里客户资料和账户密码等信息做脱敏处理。 本来是想在项目里处理的,可是考虑到数据和文档并非是在项目中给出,因而决定使用python来处理,更加简单。 (这是第二次写python脚本,哪里有问题,请大家评论里指出。)
原料
py 3.9 版本,PyCharm 2020.2.3 x64版本,CSV文件 源码在文章里。
代码开发
python脚本如下:
import pandas as pd
import sys
def main():
filePath = sys.argv[1]
type = sys.argv[2]
print(filePath)
print(type)
if type== '1':
df = pd.read_csv(filePath,encoding='ANSI', header=0)
df['客户名称'] = '张三'
df['证件号码'] = '123456789012345678'
print(df)
df.to_csv(filePath, mode="w",encoding='ANSI' ,index=False)
else :
if type== '2':
df = pd.read_csv(filePath,encoding='ANSI', header=0)
df['邮箱'] = '12345678@126.com'
df['手机号码'] = '12345678901'
print(df)
df.to_csv(filePath, mode="w",encoding='ANSI' ,index=False)
else:
if type =='3':
df = pd.read_csv(filePath, encoding='ANSI', header=0)
df['KHXM'] = '张三'
df['ZJHM'] = '123456789012345678'
df['MOBILE'] = '12345678901'
df['DH'] = '021-12345678'
df['EMAIL'] = '12345678@126.com'
df['DZ'] = '上海市徐汇区xx路'
print(df)
df.to_csv(filePath, mode="w", encoding='ANSI' ,index=False)
print("完成")
if __name__ == '__main__':
main()
实践效果
执行 python CSV.py param1 param2 命令 (参数1和参数2分别是 路径和 文件类型,针对不同的文件类型将进行不同的字段脱敏。 你可以针对这段代码稍加更改,使之符合你的要求。) 就可以实现对excel文档里的敏感字段进行脱敏。(本机测试截图) 结果展示,本机测试数据
备注
1、执行代码需要考虑文件的编码格式,文件的编码格式应当在py执行前后保持不变。具体方案可以去看代码。我代码有注释。 / 2、如果要到linux环境使用,需要在服务上配置py3和pandas,pandas版本太高会有问题。可以参考这个版本 配置好之后就可以在linux上随便找个目录执行 命令了。
参考内容
https://blog.csdn.net/m0_37530301/article/details/110531728?spm=1001.2014.3001.5502 https://github.com/WuJonah/py_autoTest https://www.liaoxuefeng.com/wiki/1016959663602400 其实还有很多参考,但过去一两周了,找不太到了。 想学习python又不想看英文的可以去看看廖雪峰的博客。第三个网址就是。
|