专栏首页Crossin的编程教室替换文件中的敏感信息

替换文件中的敏感信息

Long long time no see.『每日一坑』栏目又来啦!

今天我们来做一个现实中有可能会碰到的问题:

替换文件中的敏感信息

问题描述

假设我们有一份文件,文件中包含了很多个人信息。现在需要一份去除其中敏感信息的版本,将文件中所有手机号的4~7位和身份证号的6~15位用 * 替换。

(注意:有的身份证号是以X结尾)

示例

输入文件

张三 居住地:南京 身份证号:320101199909091234 手机号:13013013130 李四 居住地:上海 身份证号:31010120000101234X 手机号:13913912345 王五 居住地:北京 身份证号:110101198808082222 手机号:13766654321

输出文件

张三 居住地:南京 身份证号:32010**********234 手机号:130****3130 李四 居住地:上海 身份证号:31010**********34X 手机号:139****2345 王五 居住地:北京 身份证号:11010**********222 手机号:137****4321

附加要求
  1. 对指定文件夹中的所有文件进行批量处理
  2. 对 Excel 文档进行同样操作

期待各位同学提交解答。

提交代码可以使用 paste.ubuntu.com 或 codeshare.io 等代码分享网站,只需将代码复制上去保存,即可获得一个分享地址,非常方便。

往期问题可点击文末“阅读原文”通过公众号菜单栏“课外辅导”栏目中进入查看。

【解答】黑色星期五

上一次的题目【每周一坑】黑色星期五,如果使用 datetime、calendar、time 等模块的话,代码就比较简单了。

waket、星辰之门、大马猴 ଲ、Mr. wang、橄榄树、Mr.二马、cheng_y、Lance、王目田|xa、F0rever、小呆、阳光海岸 等同学都提交了正确的答案,需要的同学可以去上一篇的留言中查看。

这里分享下 waket 的代码:

from datetime import date
year = int(input('inquire year: '))
days = [date(year, i, 13) for i in range(1, 13)]
fridays = [str(i) for i in days if f'{i:%a}' == 'Fri']
print('Black Friday:\n{}'.format("\n".join(fridays)))

代码中使用到了 Python 3.6 的一个新特性 f-string,即将表达式嵌入到字符串中的一种方法。有兴趣的同学可以自行搜索下相关资料,之后有机会我会来专门介绍下。

另外,小渺、风儿、透明天使SK 等同学未使用模块,直接通过代码实现了题目要求。这其实是出这题的本意,不过我当时并未强求。作为一道练习,两种思路都可以。

欢迎在论坛 bbs.crossincode.com 上对代码做进一步讨论。

感谢大家的积极参与!期待在下一期中看到你的代码!

  • 别忘了将我们的文章转发朋友圈或在知乎上为我们的专栏点赞,你们的支持将会让编程教室做得更好:)

本文分享自微信公众号 - Crossin的编程教室(crossincode),作者:crossin

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 成为优秀程序员的10个有效方法

    一个优秀的程序员就是那种即使是过单行道都要往两边看的人。 ——Doug Linder 作为一个在IT行业的软件程序员,每天促使我去上班的动力就是对编程的乐趣和激...

    Crossin先生
  • ​编程教室的文章是用什么库完成的?

    Python 的一大特色是其丰富的模块,基本上只要你能想到的常见开发需求,都能找到别人已经实现的库直接使用,或者相关的工具/框架来辅助实现。但这对于新手来说也是...

    Crossin先生
  • 从教女友写代码中学到的

    从教女友写代码中学到的,教人写代码在一定程度上是硬件问题 本文由 伯乐在线 - 奇风余谷 翻译自 Shu Uesugi。译文链接见文末“阅读原文”。 从今年四月...

    Crossin先生
  • java代码执行过程简介

    代码即数据,数据即代码,而我们的数据是保存在文件上的,所以我们说文件就是数据,一切代码都是文件。

    一个会写诗的程序员
  • Java IO 操作基础1---普通文件的相关操作

    Java 中 IO 操作是 Java 的一个重要组成部分,这里总结一下 Java 中的 IO 的基础操作。

    指点
  • JMeter http(s)请求插件jmeter-plugin-httpBinaryFileUpload.jar

    https://gitee.com/ishouke/jmeter-plugin-httpBinaryFileUpload

    授客
  • 内容高度小于窗口高度时版权 div 固定在底部

    网站建设中经常遇到文档内容高度小于窗口高度时底部版权 div 固定在底部的问题,纯 css div 底部不太好解决这个问题,这里使用 js 代码来对检测文档高度...

    Savalone
  • [编程题] 大数相加

    注意由于这两个已经超过了Number范围,因此不能用Number存,这里我们选择使用字符串存储。

    lucifer210
  • 如何在vue项目中配置你自己的启动命令和打包命令

    在开发中,通常会需要和后台做一些开发调试, 本地开发, 和线上观测 这时 如何用一套代码 加上 几个命令来轻松的做到这些?

    yangdongnan
  • Mac IntelliJ IDEA 快捷键终极大全,速度收藏!

    上期很多朋友留言说有没有 Mac 版的,现在来了,这篇是整理得比较全的了,建议大家收藏,日后必定有用!

    芋道源码

扫码关注云+社区

领取腾讯云代金券