最近要做一个生产数据提取,涉及到隐私数据脱敏。因提取的数据是比较规范化的数据,就想到了用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)
Qt调用MATLAB 生成的dll经验分享_qt调用matlab画图
执行如下命令:尽量按以下顺序执行,否则可能会发生意向不到的问题(坑)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)在网上能找到的资料少,自己稍微研究了一下,写了个相对完整的案例,效果如下 代码:object dragData = "dragData";Vector2 offset;Color col = new Color(1, 0, 0, 0.6f);Rect rect1 = new R..._unity draganddrop
HDU2112题解:一道题看起来很简单的题目,wa了7次。(┬_┬)1、起点和终点可能相同。但是不要相同立刻contiue,因为后面还有输入。2、两个车站之间是来回的,不是单向的。不知道哪个评论说是单向的。代码:#include <bits/stdc++.h>using namespace std;typedef pair<int,int>pii;i..._hdu 最短路
-----------------------------------------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数据链路层协议,又包括CAN FD数据链路层协议。 两者均在ISO 11898-1:2015中进行了国际标准化。根据ISO开放系统互连(OSI)七层模型,底层覆盖数据链路层和物理层。其他层通常称为高层协议。 通常,基于CAN的应用层也包含其他更高层的功能元素。CAN数据链路层CAN是具有多点功能的非常可靠的生产者/消费者串行总线系统。 两种CAN数据链路层协议的总线仲裁方法都相同:经典CAN和CAN FD。 CAN帧被广播。 这意味着每个节点都可以使用CAN网络中任何其他._can总线的广播帧
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_安装镜像一半会报错
1.导入一个maven工程更改webapp文件夹类型操作点+添加web然后把webapp文件夹路径导进去就行了导入别人包时其他文件夹类型的更改有.java或者说放代码的那个文件夹里设置它的类型为Sourcesresources文件夹就设置为Resources类型...
// 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
#include #include #include #define N 10int a=5;//整个文件//静态函数 静态变量void func(char **f)//当要改变一个值时,通过一个该变量地址,当要改变指针,用地址的地址即二级指针{ *f=((char *)malloc(sizeof(char)*10)); strcpy(*f,"hello"
了解CMMI项目管理过程-项目计划(PP),使用知识域X过程矩阵对比项目规划过程组与CMMI-PP过程,具体要求:· 首先,绘制矩阵。矩阵行是十大知识领域,最后一行为其他知识;矩阵第一列是项目规划过程组,第2-4列分别是特定目标(SG)1-3;内容是项目管理过程或特定实践(SP);· 最后,小结项目管理规划过程组与行业过程PP的联系与区别。首先,我们需要了解十大知识领域:领域定义项目整合管理包括为识别、定义、组合、统一与协调项目管理过程组的各过程及项目管理活动而进行的各种._项目管理知识和项目管理知识领域的区别
本文实例为大家分享了python批量处理文件或文件夹的具体代码,供大家参考,具体内容如下# -*- coding: utf-8 -*-import os,shutilimport sysimport numpy as np##########批量删除不同文件夹下的同名文件夹#############def arrange_file(dir_path0):for dirpath,dirnames,f..._python 根据大纲执行批量处理文件夹