網頁

2025年7月22日 星期二

Python 存取CSV檔

 一、主題介紹:

當建立了很多筆資料都沒有儲存,是否意味著每次都得重新再建立,就沒有達到資料重複使用的效果,所以建立資料庫就顯得很重要了,而建立資料庫有的使用 MySQL、或 SQLite、...等,但這些資料庫都是可以處理大量資料的,如果我們的資料不多,只是暫時儲存資料、小型專案的資料存取、系統間資料的匯入出...,就可以考慮使用簡單的 CSV 檔來儲存資料來得方便許多。


二、程式範例:


import csv

class AccessCSV:

    def __init__(self,file):
        self.__file = file

    def writeData(self,data):
        with open(self.__file,'a',newline='') as fcsv:
            w = csv.writer(fcsv)
            w.writerow(data)

    def readData(self):
        with open(self.__file,'r',newline='') as fcsv:
            rows = csv.reader(fcsv)
            for r in rows:
                print(r)


from mylib import AccessCSV

file = "data.csv"
wdata_title = ['學生','科目','成績']
wdata_1 = ['李白','國文',88]
wdata_2 = ['張三','英文',65]
wdata_3 = ['李四','數學',37]

obj = AccessCSV(file)
obj.writeData(wdata_title)
obj.writeData(wdata_1)
obj.writeData(wdata_2)
obj.writeData(wdata_3)
obj.readData()


#執行結果 ...

['學生', '科目', '成績']

['李白', '國文', '88']

['張三', '英文', '65']

['李四', '數學', '37']



三、程式說明:

程式內容使用了物件導向來撰寫存取 CSV 檔,如果有對物件導向有不熟悉的地方,可以參考前篇的文章有介紹到怎麼撰寫類別程式的方法。建立開啟檔案的物件使用 with ~ as ~ 指令,它的好處是會自動關閉檔案、資料庫連線的資源、記憶體釋放...,寫入 csv 檔使用了 ' a ' 參數主要的目的就是從檔案的尾端寫入資料,而不是使用 ' w ' 參數先清除資料再寫入,而 newline = ' ' 這個目的是每筆資料使用的分隔字元,讀取 csv 檔就使用 ' r ' 參數,最後使用 print 指令將 csv 檔資料列印來,即完成存取 csv 檔功能。


沒有留言:

張貼留言

TQC+ Python 證照考題評量(五十四) - 平均溫度

 一、主題介紹: 資料庫中的一堆數據資料,時常需要這些資料的平均值、最大值、與最小值,作為分析資料的依據,如能透過寫程式讓它們自動化就能增加效率,就來看看今天的 TQC+ 考題的練習。 (1) 題目 請撰寫一程式,讓使用者輸入四週各三天的溫度,接著計算並輸出這四週的平均溫度及最高...