前面講的那些東西都跟人工智慧沒啥大關係,我拖戲了 對不起。不過前面那些基礎是必要的。
接下來我們會開始介紹各種資料讀寫的方式,畢竟人工智慧最重要的就是前面資料的取得和整理。
我們先以 csv 來試試看吧!
import csv
# 開啟 CSV 檔案
with open('iris.csv', newline='') as csvfile:
rows = csv.reader(csvfile)
# 以迴圈輸出每一列
for row in rows:
print(row)
我們稍微解釋一下上面的吧!一開始我們假設有個 iris.csv 的檔案,我們打開後丟進去 csvfile 這個變數中。
利用 csv.reader 這個指令去解析剛剛的 csvfile 這個變數,讓他是一個 list 物件。接著我們就可以把他用 for 迴圈去解析他摟!是不是很容易,我覺得超容易的。
如果說我們取出的 csv 希望是 dist 格式的話也可以這樣寫
rows = csv.DictReader(csvfile)
使用這個指令的話,它會自動把第一列(row)當作欄位的名稱,將第二列以後的每一列轉為 dictionary,這樣我們就可以使用欄位的名稱來存取資料。
# 以迴圈輸出指定欄位
for row in rows:
print(row['sepal_length'], row['species'])
這樣的話,我們在後面使用的時候就可以作更多的篩選和處理了。
接著就是產生 csv 檔案的時候了。
標準寫法也是很簡單啦,就是打開一個檔案然後一行一行寫 list
import csv
# 開啟輸出的 CSV 檔案
with open('output.csv', 'w', newline='') as csvfile:
# 建立 CSV 檔寫入器
writer = csv.writer(csvfile)
# 寫入一列資料
writer.writerow(['姓名', '身高', '體重'])
# 寫入另外幾列資料
writer.writerow(['令狐沖', 175, 60])
writer.writerow(['岳靈珊', 165, 57])
當然,如果我們手上已經有 dist 格式的資料可用,也可以直接塞。
# 定義欄位
fieldnames = ['姓名', '身高', '體重']
# 將 dictionary 寫入 CSV 檔
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
# 寫入第一列的欄位名稱
writer.writeheader()
# 寫入資料
writer.writerow({'姓名': '令狐沖', '身高': 175, '體重': 60})
writer.writerow({'姓名': '岳靈珊', '身高': 165, '體重': 57})