文件行数
打印输出附件文件的有效行数,注意:空行不计算为有效行数。
输入输出格式:这是仅给出输出格式样例,不是结果。
输出示例
共100行
fo=open('latex.log','r',encoding='utf-8')
count=0
for line in fo:
if line=='\n':
continue
else:
count+=1
print('共{}行'.format(count))
文件字符分布
统计附件文件的小写字母a-z的字符分布,即出现a-z字符的数量,并输出结果。
同时请输出文件一共包含的字符数量。
注意输出格式,各元素之间用英文逗号(,)分隔。
答案可能包含a-z共26个字符的分布,如果某个字符没有出现,则不显示,输出顺序a-z顺序。
输入输出格式:这是仅给出输出格式样例,不是结果。
输出示例
共999字符,a:11,b:22,c:33,d:44,e:55
str=open('latex.log','r',encoding='utf-8').read()
counts={}#定义以字母letter为key的字典,value统计letter的出现次数
alphbet='abcdefghijklmnopqrstuvwxyz'
for letter in alphbet:
for ch in str:#每次从全文本中找letter字母
if ch==letter:
counts[letter]=counts.get(letter,0)+1
print("共{}字符".format(len(str)),end=',')
for ch in alphbet[:-1]:#控制输出,最后一个不以逗号结尾
print("{}:{}".format(ch,counts[ch]),end=',')
print("{}:{}".format('z',counts['z']))
文件独特行数
统计附件文件中与其他任何其他行都不同的行的数量,即独特行的数量。
输入输出格式:这是仅给出输出格式样例,不是结果。
输出示例
共99独特行
txt=open('latex.log','r',encoding='utf-8').read()#获取文本字符串
ls=txt.split("\n")#将文本字符串以行分割为列表
begin=set(ls)#取集合后得到的是独特的+重复的
for item in begin:#将ls中的所有元素都减一个,得到的就是只有重复元素的列表
ls.remove(item)
end=set(ls)#这里取集合之后,剩下的元素全部是重复的
print("共{}独特行".format(len(begin)-len(end)))#最后结果等于(独特+重复)的个数减去(重复)的个数
CSV格式列变换
附件是一个CSV文件,请将每行按照列逆序排列后输出,不改变各元素格式(如周围空格布局等)。
输入输出格式:这是仅给出输出格式样例,不是结果。
输入示例(以下是文件内容)
1,2,3,4
a,b,c,d
输出示例
4,3,2,1
d,c,b,a
fo=open('data.csv','r')
for line in fo:
line=line.replace('\n','')
ls=line.split(',')
ls.reverse()
print(','.join(ls))
fo.close()
CSV格式数据清洗
附件是一个CSV文件,其中每个数据前后存在空格,请对其进行清洗,要求如下:
(1)去掉每个数据前后空格,即数据之间仅用逗号(,)分割;
(2)清洗后打印输出。
输入输出格式:这是仅给出输出格式样例,不是结果。
输入示例(在文件中)
1, 2, 3, 4, 5
‘a’, ‘b’ , ‘c’ , ‘d’,‘e’
输出示例
1,2,3,4,5
‘a’,‘b’,‘c’,‘d’,‘e’
fo=open('data.csv','r')
for line in fo:
line=line.replace('\n','')
line=line.replace(' ','')
print(line)
fo.close()