python—文件和数据(文件行数 文件字符分布)


文件行数

描述

打印输出附件文件的有效行数,注意:空行不计算为有效行数。

文件下载地址:

链接:https://pan.baidu.com/s/1xURpGrALY0aZaoIEZI1LpA
提取码:ks7m

f = open("latex.log","r")
count = 0
for i in f:
    line = i.strip("\n")   #以回车为分隔,代表一行
    if len(line) == 0:     #空行不计算
        continue
    else:
        count = count+1
print("共{}行".format(count))

 

文件字符分布

描述

统计附件文件的小写字母a-z的字符分布,即出现a-z字符的数量,并输出结果。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

同时请输出文件一共包含的字符数量。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

注意输出格式,各元素之间用英文逗号(,)分隔。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

答案可能包含a-z共26个字符的分布,如果某个字符没有出现,则不显示,输出顺序a-z顺序。

f = open("latex.log")        
count = 0
d = {}
for line in f:                          #第一次遍历是每一行数据
    for c in line:                      #遍历每个字母
        d[c] = d.get(c, 0) + 1          #用字典get方法计算字母出现个数,当遇见空格或其它符号,返回0
        count = count+1
print("共{}字符".format(count), end="")  #打印总数
for i in range(26):
    print(",{}:{}".format(chr(ord('a')+i), d[chr(ord('a')+i)]), end="") 
#上面已经计算完了,这一步主要是排序a-z共26个字母,先遍历出26字母当做字典中的key,查找对应的值。把字母转换成ascii码才能相加,加完再转回去。

 

 

文件独特行数

描述

统计附件文件中与其他任何其他行都不同的行的数量,即独特行的数量。

 

f = open("latex.log","r")
ls = f.readlines()
s = set(ls)
for i in s:
    ls.remove(i)
t = set(ls)
print("共{}独特行".format(len(s)-len(t)))

 理解有点偏差,网上找的资料

你的理解bai有偏差,独特行代表没有重复的行,而s=set(ls)集合包括两部分,一部分是独特行,另外一部分是重复行保留的一个dao“副本”,

比如两个“abc”,还保留了一个在集合中,所以内要将这些重复行的“副本”也去掉容才行。

 

 

 

CSV格式列变换

描述

附件是一个CSV文件,请将每行按照列逆序排列后输出,不改变各元素格式(如周围空格布局等)。

data = open("data.csv","r")
for i in data:
    ls =i.replace('\n','')
    m = ls.split(',')[::-1]   #列表切片-1是步长
    print(','.join(m))   #最后返回是字符串

  

CSV格式数据清洗

描述

附件是一个CSV文件,其中每个数据前后存在空格,请对其进行清洗,要求如下:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

(1)去掉每个数据前后空格,即数据之间仅用逗号(,)分割;‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

(2)清洗后打印输出。

数据之间本来就是逗号分隔,所以去除空格就好

data = open("data.csv").read()
print(data.replace(" ",""))

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM