CSV(Comma-Separated Values)即逗號分隔值,可以用Excel開啟檢視。由於是純文本,任何編輯器也都可開啟。與Excel檔案不同,CSV檔案中:
值沒有類型,所有值都是字串
,作為分隔符,分隔兩個單元格。像這樣
a,,c表示單元格
a和單元格
c之間有個空白的單元格。依此類推。
import csv filename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'with open(filename) as f: reader = csv.reader(f)print(list(reader))
data不能直接列印,list(data)最外層是list,裡層的每一行資料都在一個在list中,有點像這樣
[['name', 'age'], ['Bob', '14'], ['Tom', '23'], ...]於是我們可以這樣訪問到Bob的年齡
reader[1][1], 在for迴圈中遍歷如下
import csv filename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'with open(filename) as f: reader = csv.reader(f)for row in reader:# 行号从1开始print(reader.line_num, row)要注意的是,reader只能遍歷一次。由於reader是可迭代對象,可以使用
next方法一次取得一行。
import csv filename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'with open(filename) as f: reader = csv.reader(f)# 读取一行,下面的reader中已经没有该行了head_row = next(reader)for row in reader:# 行号从2开始print(reader.line_num, row)寫資料到csv檔案中有reader可以讀取,當然也有writer可以寫入。一次寫入一行,一次寫入多行都可以。
import csv# 使用数字和字符串的数字都可以datas = [['name', 'age'], ['Bob', 14], ['Tom', 23], ['Jerry', '18']]with open('example.csv', 'w', newline='') as f: writer = csv.writer(f)for row in datas: writer.writerow(row) # 还可以写入多行writer.writerows(datas)如果不指定
newline='',則每寫入一行將有一空行被寫入。上面的程式碼產生如下內容。
name,age Bob,14 Tom,23 Jerry,18 name,age Bob,14 Tom,23 Jerry,18DictReader和DictWriter物件使用DictReader可以像操作字典一樣操作數據,把表格的第一行(一般是標頭)當作key。使用key可存取行中那個key對應的資料。
import csv filename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'with open(filename) as f: reader = csv.DictReader(f)for row in reader:# Max TemperatureF是表第一行的某个数据,作为keymax_temp = row['Max TemperatureF']print(max_temp)使用DictWriter類,可以寫入字典形式的數據,同樣鍵也是標頭(表格第一行)。
import csv headers = ['name', 'age'] datas = [{'name':'Bob', 'age':23}, {'name':'Jerry', 'age':44}, {'name':'Tom', 'age':15} ]with open('example.csv', 'w', newline='') as f:# 标头在这里传入,作为第一行数据writer = csv.DictWriter(f, headers) writer.writeheader()for row in datas: writer.writerow(row) # 还可以写入多行writer.writerows(datas)
#
以上是Python處理csv檔案實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!