临近毕业,今天班群里发了个要核对的信息的表格,要我们检查一下,涉及到毕业证。

于是我就下载来看一看,结果傻了眼:(敏感信息已打码)是的,姓名和身份证号都是明文显示的,而且足足有 1500 条… 整个一届的全校学生的身份证,班级,姓名,就这样被一堆班长发到群共享传来传去……

本来想着直接把它们丢给新生做实验玩,比如查询有多少个生日相同的,这一届同学的地区分布,年龄分布,但想想这有点太危险了,于是准备做如下事情:

1、把姓名改成:X 某某(张爱华 => 张某某)

2、身份证号隐藏后 4 位(112107199202060820 => 11210719920206XXXX)

鉴于本人 Excel 玩的不溜,所以准备写个程序帮我干这件事,C 的话处理字符串实在无能,于是想起来最近在学的 Python,写了个小程序顺利实现:

def filter(file_path, newfile_path, start_p, end_p, fiter_str):
  ori_file = open(file_path,"r")
  after_file = open(newfile_path, "w")
  while True:
    line = ori_file.readline()
    if line:
      after_file.write(line[start_p:end_p] + fiter_str + "\n")
    else:
      break
            
names_file_path = "/Users/sun/Desktop/name.txt" # 源文件 1
new_names_file_path = "/Users/sun/Desktop/new_name.txt" # 处理后文件 1
numbers_file_path = "/Users/sun/Desktop/number.txt" # 源文件 2
new_numbers_file_path = "/Users/sun/Desktop/new_number.txt"# 处理后文件 2
filter(names_file_path, new_names_file_path, 0, 1, "某某")
filter(numbers_file_path, new_numbers_file_path, 0, 14, "XXXX")

最后生成两个文件,直接复制回 Excel 即可。

忍不住高喊,Python 大法好。

Life is short,You need Python.

一点感想:

一直觉得每个人都应该花上一两个星期简单学一下 Python,不需要多深入。只需要明白借助 Python 这种简单而又强大的编程语言,可以让什么样的工作简化,需要的时候简单回顾一下就能上手即可。

这种用计算机解决重复性工作的效率会比人工高出不仅是 2n 倍的数量级,往往是 2^n 倍的…