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