一、主題介紹:
當建立了很多筆資料都沒有儲存,是否意味著每次都得重新再建立,就沒有達到資料重複使用的效果,所以建立資料庫就顯得很重要了,而建立資料庫有的使用 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 檔功能。
沒有留言:
張貼留言