python 简单的数据脱敏_python个人信息脱敏_mingjie1212的博客-程序员宅基地

技术标签: python  string  数据脱敏  

最近要做一个生产数据提取,涉及到隐私数据脱敏。因提取的数据是比较规范化的数据,就想到了用python的string特性来做。

对于指定分隔符或者定长的文件,使用python来实现是比较得心应手的。很简单,几行代码完成。

#!/usr/bin/env python3

sourcefilepath = "C:/Users/mingjie1212/Desktop/intellij idea/123.txt"

# 123.txt文件
# 1|2|333333333333|aaaaaaaaaa|4444444444444|
# 1|2|333333333333|aaaaaaaaaa|4444444444444|
# 1|2|333333333333|aaaaaaaaaa|4444444444444|
# 1|2|333333333333|aaaaaaaaaa|4444444444444|
# 1|2|333333333333|aaaaaaaaaa|4444444444444|
# 1|2|333333333333|aaaaaaaaaa|4444444444444|
# 1|2|333333333333|aaaaaaaaaa|4444444444444|

replace_key = '******'

#首先读取文件
with open(sourcefilepath, 'r', encoding='utf-8') as f:
    contents = f.readlines()

# 特殊字段分割 脱敏指定列字符,如脱敏第4列
column_num=4
for line in contents:
    temp = line.split("|")
    org_str = temp[column_num-1]
    replace_str = org_str[0:3] + replace_key + org_str[5:]

    target_line = ""
    for i in range(len(temp)):
        if i == column_num-1:
            target_line = target_line + "|" + replace_str
        elif i == len(temp) - 1:
            target_line = target_line + temp[i]
        else:
            target_line = target_line + temp[i] + "|"

    print(target_line)

# 定长文件 脱敏指定列字符
for line in contents:
    replace_str = line[0:3] + replace_key + line[5:]
    print(replace_str)

参考:https://www.w3schools.com/python/python_strings.asp

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mingjie1212/article/details/88386572

智能推荐

Qt调用MATLAB_qt调用matlab画图_在路上@Amos的博客-程序员宅基地

Qt调用MATLAB 生成的dll经验分享_qt调用matlab画图

Azure Ubuntu18.04安装lxde桌面记录,Windows远程连接Ubuntu18.04(Linux)-程序员宅基地

执行如下命令:尽量按以下顺序执行,否则可能会发生意向不到的问题(坑)1.更新数据源sudo apt-get update 2.更新安装包sudo apt-get upgrade3.安装lxde桌面sudo apt-get install lxde4.安装xrdpsudo apt-get install xrdp5.开放服务器...

Unity编辑器 - DragAndDrop拖拽控件_unity draganddrop-程序员宅基地

Unity编辑器 - DragAndDrop拖拽控件Unity编辑器的拖拽(DragAndDrop)在网上能找到的资料少,自己稍微研究了一下,写了个相对完整的案例,效果如下 代码:object dragData = "dragData";Vector2 offset;Color col = new Color(1, 0, 0, 0.6f);Rect rect1 = new R..._unity draganddrop

HDU2112:最短路_hdu 最短路-程序员宅基地

HDU2112题解:一道题看起来很简单的题目,wa了7次。(┬_┬)1、起点和终点可能相同。但是不要相同立刻contiue,因为后面还有输入。2、两个车站之间是来回的,不是单向的。不知道哪个评论说是单向的。代码:#include <bits/stdc++.h>using namespace std;typedef pair<int,int>pii;i..._hdu 最短路

linux安装oracle的sqlplus与sqllder_oracle客户端装完后,sqlldr命令还是无法进行-程序员宅基地

-----------------------------------------sqlplus安装--------------------------------------1.sqlplus安装下载这三个文件oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpmoracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpmoracle-instantclient11.2-sqlplus-11.2._oracle客户端装完后,sqlldr命令还是无法进行

CAN介绍_can总线的广播帧_Delta-delta的博客-程序员宅基地

CAN协议描述既包括经典CAN数据链路层协议,又包括CAN FD数据链路层协议。 两者均在ISO 11898-1:2015中进行了国际标准化。根据ISO开放系统互连(OSI)七层模型,底层覆盖数据链路层和物理层。其他层通常称为高层协议。 通常,基于CAN的应用层也包含其他更高层的功能元素。CAN数据链路层CAN是具有多点功能的非常可靠的生产者/消费者串行总线系统。 两种CAN数据链路层协议的总线仲裁方法都相同:经典CAN和CAN FD。 CAN帧被广播。 这意味着每个节点都可以使用CAN网络中任何其他._can总线的广播帧

随便推点

npm安装镜像,cnpm报错的一些坑_安装镜像一半会报错_莫兰迪的蓝色的博客-程序员宅基地

1.解决 npm ERR! code UNABLE_TO_VERIFY_LEAF_SIGNATURE各种下载失败,并不是镜像源的问题,哪怕切换淘宝源也无法下载。总之就像断网一般无法下载。无关网络。解决方案:http://stackoverflow.com/questions/20747817/error-unable-to-verify-leaf-signature-phonegap-installation输入以下即可解决:npm config set strict-ssl fals_安装镜像一半会报错

IDEA工具导入别人包出现的问题-程序员宅基地

1.导入一个maven工程更改webapp文件夹类型操作点+添加web然后把webapp文件夹路径导进去就行了导入别人包时其他文件夹类型的更改有.java或者说放代码的那个文件夹里设置它的类型为Sourcesresources文件夹就设置为Resources类型...

隐藏窗口(hide window)-程序员宅基地

// Hide the window of wow.exe with typing "hide.exe"// Then show it with typing "hide.exe s"#include int main( int argc,char *argv[]){ HWND hWnd; hWnd=FindWindow(NULL,"魔兽世界");_hide window

2012 12.01-程序员宅基地

#include #include #include #define N 10int a=5;//整个文件//静态函数 静态变量void func(char **f)//当要改变一个值时,通过一个该变量地址,当要改变指针,用地址的地址即二级指针{ *f=((char *)malloc(sizeof(char)*10)); strcpy(*f,"hello"

【IT项目管理】项目管理过程与领域知识及其关系_项目管理知识和项目管理知识领域的区别-程序员宅基地

了解CMMI项目管理过程-项目计划(PP),使用知识域X过程矩阵对比项目规划过程组与CMMI-PP过程,具体要求:· 首先,绘制矩阵。矩阵行是十大知识领域,最后一行为其他知识;矩阵第一列是项目规划过程组,第2-4列分别是特定目标(SG)1-3;内容是项目管理过程或特定实践(SP);· 最后,小结项目管理规划过程组与行业过程PP的联系与区别。首先,我们需要了解十大知识领域:领域定义项目整合管理包括为识别、定义、组合、统一与协调项目管理过程组的各过程及项目管理活动而进行的各种._项目管理知识和项目管理知识领域的区别

怎样用python批量处理文件夹_python批量处理文件或文件夹-程序员宅基地

本文实例为大家分享了python批量处理文件或文件夹的具体代码,供大家参考,具体内容如下# -*- coding: utf-8 -*-import os,shutilimport sysimport numpy as np##########批量删除不同文件夹下的同名文件夹#############def arrange_file(dir_path0):for dirpath,dirnames,f..._python 根据大纲执行批量处理文件夹

推荐文章

热门文章

相关标签