Python题库:文件
目录
- 1 替换文件中的敏感信息(2022重点看)
- 1.1 描述
- 1.2 输入格式
- 1.3 输出格式
- 2 缺失数据处理
- 3 统计文本中单词数(2022重点看)
- 3.1 描述
- 3.2 输入格式
- 3.3 输出格式
- 4 统计字母数量
- 5 地区查询
- 6 Tiobe排行榜数据处理
- 7 csv文件排序输出
替换文件中的敏感信息(2022重点看)
类型:文件处理
描述
假设我们有一份文件(编码格式UTF-8),文件中包含了很多个人隐私信息。 现在需要一份去除其中敏感信息的版本,将文件中所有手机号的4~7位和身份证号的7~14位用 * 替换。 示例: 如果读入文件内容为: 张三 居住地:武汉 身份证号:420111199909091234 手机号:13013013130
输出结果是:
张三 居住地:武汉 身份证号:420111********1234 手机号:130****3130
输入格式
读取附件的文件123.txt:
张三 居住地:武汉 身份证号:420111199909091234 手机号:13212341234 李四 居住地:北京 身份证号:11010120000101234X 手机号:13988777777 王五 居住地:深圳 身份证号:610101198808082222 手机号:13766654321
输出格式
张三 居住地:武汉 身份证号:420111********1234 手机号:130****3130 示例 1 输入: 文件部分内容: 张三 居住地:武汉 身份证号:420111199909091234 手机号:13013013130 输出: 文件部分内容输出: 张三 居住地:武汉 身份证号:420111********1234 手机号:130****3130
缺失数据处理
类型:文件
===描述===
附件文件中存在一些缺失数据,请找出这些缺失值并用输入的字符串 s 来替换。
输入格式
输入一个字符串s
给定一个文件123.csv:
,,20.76249006,0.000168044,,,18.9104994,0.08860522 ,,20.77301274,0.000149807,,,18.92102208,0.086064377 ,,20.78353541,0.00013318,,,18.93154475,0.083365648 ,,20.79405809,0.000118071,,,18.94206743,0.080528602 ,,20.80458076,0.000104387,,,18.9525901,0.077573307 ,,20.81510343,9.20E-05,,,18.96311277,0.07452009 ,,22.33036852,0,,,18.97363545,0.071389313 ,,,,,,18.98415812,0.068201145 ,,,,,,18.9946808,0.064975352 ,,,,,,19.00520347,0.061731102 ,,,,,,19.01572615,0.058486784 ,,,,,,19.02624882,0.055259852 ,,,,,,19.03677149,0.052066246
输出格式
处理结果以二维列表形式输出,元素为原文件的每一行切分成的列表
示例 1
输入: a 输出: [['a', 'a', '20.76249006', '0.000168044', 'a', 'a', '18.9104994', '0.08860522'], ...... ['a', 'a', 'a', 'a', 'a', 'a', '19.03677149', '0.052066246']]
(此处仅给出第一行和最后一行数据,供参考格式)
统计文本中单词数(2022重点看)
类型:文件处理
描述
编程统计文本中的单词数量,不包括空格和除单引号以外的标点符号(!"#$%&()*+,./:;<=>?@[\]^_{|}~\n),这些符号和空白符一样都是单词的分隔符,数字及多个连续的数字按一个单词计算,类似I'll和wife's等单词当成一个词计。
输入格式
文本文件3.txt:
Amerigo Bonasera sat in New York Criminal Court Number 3 and waited for justice;vengeance on the men who had so cruelly hurt his daughter, who had tried to dishonor her.
输出格式
单词数量
示例 1
输入: test.txt
输出: 31 ```
统计字母数量
类型:文件
描述
读取附件是一篇英文短文,请编写程序统计这篇短文前 n 行中每一个英文字母出现的次数,结果按次数降序排列,次数相同时,按字母表顺序输出。若 n 值大于短文行数,输出整篇文章中每一个英文字母出现的次数(大写字母按小写字母统计)。
输入格式
输入一个正整数 n
输出格式
分行输出每个字母的数量,数量占3个字符宽度,居右对齐(参考示例输出)
示例 1
输入:
10
输出:
e 的数量是 179 个 a 的数量是 125 个 t 的数量是 121 个 h 的数量是 116 个 o 的数量是 101 个 s 的数量是 92 个 i 的数量是 91 个 n 的数量是 88 个 d 的数量是 77 个 r 的数量是 60 个 l 的数量是 49 个 f 的数量是 46 个 w 的数量是 45 个 m 的数量是 41 个 y 的数量是 40 个 u 的数量是 35 个 c 的数量是 32 个 b 的数量是 29 个 g 的数量是 20 个 k 的数量是 19 个 p 的数量是 13 个 v 的数量是 9 个 q 的数量是 1 个 x 的数量是 1 个 j 的数量是 0 个 z 的数量是 0 个
地区查询
===描述===
附件文件中包含全国各地区的地区编码,对应身份证的前6位。身份证的前2位代表省名,在文件中可能存在身份证前2位数字后面加4个0的编码,代表省、自治区或直辖市;身份证号前4位代码地区名,在文件中可能存在身份证前4个数字后面加2个0的编码,表示市或地区。省和地区这两个编码也有可能不存在。输入身份证号前6位,查询到该编码对应的省、市、县(区)。某一项查询不到时,返回并输出空字符串。
附件文件下载:
链接:https://pan.baidu.com/s/1sQyAlopW9QdqSiEBcWSPPw?pwd=te6v 提取码:te6v
输入格式
输入身份证号前6位
===输出格式===
参考示例分三行输出省、市、县(区)
示例 1
输入: 110113 输出: 北京 顺义区
示例 2
输入: 421221 输出: 湖北 咸宁市 嘉鱼县
Tiobe排行榜数据处理
类型:文件
描述
附件文件tiobe.txt是截止2020年5月为止Tiobe程序设计语言排行榜前十的数据,包括'C','Java','Python','C++','C#','Visual Basic','JavaScript','PHP','SQL','R'这10种程序设计语言某年某月的热度指标。请处理tiobe.txt文件中的文本,使其能通过语言名称和年份进行热度指标的查询。
题目要求输入一个程序设计语言名称和一个年份,筛选出该语言该年的数据信息并按要求输出相关数据。
提示:
(1)dict1=eval("{'c':[[(2001, 5, 30), 20.24], [(2001, 6, 30), 20.77], [(2001, 7, 30), 20.75] ] }")语句可以直接将字符串转换为字典赋值给dict1。
(2)可以让文件里所有数据形成字典,形如{'c':[[(2001, 5, 30), 20.24], [(2001, 6, 30), 20.77], [(2001, 7, 30), 20.75]] ,'python':[[(2001,5,20),5.7],[(2001,6,20,6.7)],[(2001,7,20),12.9]], ... }。
附件文件下载:
链接:https://pan.baidu.com/s/1riBJXOD75jXS9StxrIOnRA?pwd=pjhx 提取码:pjhx
===输入格式===
输入为两行:
第一行是一个字符串,为某程序设计语言的名称PL_name;
第二行为一个正整数year。
输出格式
(1)如果在给定的tiobe数据中能查询到PL_name在year年份的数据,则按照示例格式输出PL_name在year年的所有指标数据(按照日期升序排列),并输出本年热度指标的平均值(保留小数点后两位)。
(2)如果在给定的tiobe数据中不能查询到PL_name在year年份的数据,则输出“没有查到PL_name语言year年的tiobe数据”。
注意:查询时不考虑PL_name的大小写。
示例 1
输入:
python
2001
输出:
[(2001, 5, 30), 1.25] [(2001, 6, 30), 1.13] [(2001, 7, 30), 1.2] [(2001, 8, 28), 1.17] [(2001, 9, 26), 1.28] [(2001, 10, 28), 1.23] [(2001, 11, 31), 1.04] python语言2001年的tiobe平均值是1.19
示例2
输入:
R 2008
输出:
[(2008, 0, 3), 0.04] [(2008, 1, 7), 0.06] [(2008, 5, 1), 0.09] [(2008, 6, 2), 0.08] [(2008, 7, 3), 0.06] [(2008, 8, 3), 0.07] [(2008, 9, 6), 0.07] [(2008, 10, 2), 0.08] [(2008, 11, 3), 0.07] r语言2008年的tiobe平均值是0.07
示例3
输入:
Visual Basic
2001
输出:
没有查到visual basic语言2001年的tiobe数据
示例4
输入: Lisp 2001 输出: 没有查到lisp语言2001年的tiobe数据
csv文件排序输出
描述
读入grade0.csv文件,按照要求对第i列升序排列后输出。(提示:可以使用语句fo=open('grade0.csv','r',encoding='UTF-8')来打开文件。)
Grade0.csv文件的内容形如下图:
链接:https://pan.baidu.com/s/12nLDjcB_fUyqI60r7Ui1PQ?pwd=wrl3 提取码:wrl3 --来自百度网盘超级会员V9的分享
输入格式
输入为一个数正整数 i,要求根据 grade0.csv 文件的第 i 列值升序排列后输出文件中的数据,当第 i 列数据值相同时,按第 1 列数据的值辅助排序(测试数据保证为正整数且不超过数据列数)。
输出格式
按行输出排序后的信息,数据列之间用tab(‘\t’)分隔,最后一列后面没有空格。
输入输出示例
输入 4
输出
20170101 章阳 Male A 20170102 徐芳 Female A 20170112 胡瑞欣 Female A 20170113 田益宾 Male A 20170115 张铭武 Male A 20170106 周思云 Female B 20170109 刘春燕 Female B 20170110 刘兴怡 Female B