<wbr id="wsjqy"></wbr>

          <form id="wsjqy"></form>
          <sub id="wsjqy"></sub>
          <nav id="wsjqy"><listing id="wsjqy"></listing></nav>
          更多課程 選擇中心


          Python培訓

          400-111-8989

          自學Python編程【第三十一節】處理文件中的數據

          • 發布:Python培訓
          • 來源:Crossin的編程教室
          • 時間:2019-02-15 16:52

          歡迎您來到Python編程課堂,前面我們學習了讀取文件寫入文件,寫入文件的時候切記你是要用新的內容全部覆蓋舊的內容還是要續寫,否則一不小心你就有可能犯下錯誤,忘記的同學再去回顧復習一下,今天我們來學習如何利用Python處理文件中的數據。

          處理文件中的數據

          我們已經知道了如何讀取和寫入文件。有了這兩個操作文件的方法,再加上對文件內容的處理,就能寫一些小程序,解決不少日常的數據處理工作。

          比如我現在拿到一份文檔,里面有某個班級里所有學生的平時作業成績。因為每個人交作業的次數不一樣,所以成績的數目也不同,沒交作業的時候就沒有分。我現在需要統計每個學生的平時作業總得分。

          記得我小的時候,經常有同學被老師喊去做統計分數這種“苦力”。現在電腦普及了,再這么干就太弱了。用Python,幾行代碼就可以搞定。

          看一下我們的文檔里的數據:

          #-- scores.txt

          劉備 23 35 44 47 51

          關羽 60 77 68

          張飛 97 99 89 91

          諸葛亮 100

          1.先把文件讀進來:

          f = file('scores.txt')

          2.取得文件中的數據。因為每一行都是一條學生成績的記錄,所以用readlines,把每一行分開,便于之后的數據處理:

          lines = f.readlines()
          
          f.close()

          提示:在程序中,經常使用print來查看數據的中間狀態,可以便于你理解程序的運行。比如這里你可以print lines,看一下內容被存成了什么格式。

          3.對每一條數據進行處理。按照空格,把姓名、每次的成績分割開:

          for line in lines:
          
          data = line.split()

          接下來的4、5兩個步驟都是針對一條數據的處理,所以都是在for循環的內部。

          4.整個程序最核心的部分到了。如何把一個學生的幾次成績合并,并保存起來呢?我的做法是:對于每一條數據,都新建一個字符串,把學生的名字和算好的總成績保存進去。最后再把這些字符串一起保存到文件中:

          sum = 0
          
          for score in data[1:]:
          
          sum += int(score)
          
          result = '%s\t: %d\n' % (data[0], sum)

          這里幾個要注意的點:

          對于每一行分割的數據,data[0]是姓名,data[1:]是所有成績組成的列表。

          每次循環中,sum都要先清零。

          score是一個字符串,為了做計算,需要轉成整數值int。

          result中,我加了一個制表符\t和換行符\n,讓輸出的結果更好看些。

          5.得到一個學生的總成績后,把它添加到一個list中。

          results.append(result)

          results需要在循環之前初始化results = []

          6.最后,全部成績處理完畢后,把results中的內容保存至文件。因為results是一個字符串組成的list,這里我們直接用writelines方法:

          output = file('result.txt', 'w')
          
          output.writelines(results)
          
          outpus.close()

          大功告成,打開文件檢驗一下結果吧。

          以下是完整程序,把其中print前面的注釋符號去掉,可以查看關鍵步驟的數據狀態。不過因為字符編碼的問題,list的中文可能會顯示為你看不懂的字符。

          f = file('scores.txt')
          
          lines = f.readlines()
          
          #print lines
          
          f.close()
          
          results = []
          
          for line in lines:
          
          #print line
          
          data = line.split()
          
          #print data
          
          sum = 0
          
          for score in data[1:]:
          
          sum += int(score)
          
          result = '%s \t: %d\n' % (data[0], sum)
          
          #print result
          
          results.append(result)
          
          #print results
          
          output = file('result.txt', 'w')
          
          output.writelines(results)
          
          output.close()

          恭喜你在Python自學的道路上又堅持了一天,這節課的內容相對來說比較難,不太好消化,尤其是對于前幾節課沒有練習的同學,這節課我們用到了簡單的分割、文件讀取、字符轉化、加法運算、寫入文件、創建新文件等內容,你可得好好練習以求理解了,加油!更多Python相關的內容盡在達內Python培訓機構官網,敬請關注!

          免責聲明:內容和圖片源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

          預約申請免費試聽課

          填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

          上一篇:自學Python編程【第三十節】寫文件
          下一篇:自學Python編程【第三十二節】break

          如何運用Python編程處理大數據?用Python編程處理大數據的技巧是什么?

          Python面向對象編程的知識點都在這了!

          Python的高級特征及用法(部分)

          聽說這些Python知識,很少有人知道!

          • 掃碼領取資料

            回復關鍵字:視頻資料

            免費領取 達內課程視頻學習資料

          • 視頻學習QQ群

            添加QQ群:1143617948

            免費領取達內課程視頻學習資料

          Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

          選擇城市和中心
          黑龍江省

          吉林省

          河北省

          湖南省

          貴州省

          云南省

          廣西省

          海南省

          网友自拍 偷拍 校园性爱青青草曰逼视屏老鸭窝国产偷自视频区视频 百度 好搜 搜狗
          <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>