CSV文件儲存
阿新 • • 發佈:2018-06-18
pen -s 字段 數據 limit del 初始化 () tro
CSV文件儲存
CSV,全稱為 Comma-Separated Vaules,翻譯為逗號分隔值或字符分隔值,其文件以純文本形式存儲表格數據。該文件是一個字符序列,可以由任意數目的記錄組成,記錄間以某種換行符分隔。每條記錄由字段組成,字段之間的分隔符是字符串或其他字符,最常見的是逗號或制表符。不過所有記錄都有完全相同的字段序列,相當於一個結構化表的純文本形式。它比Excel文件更加簡潔,XLS文本是電子表格,它包含了文本、數值、公式和格式等內容,而CSV中不包含這些內容,就是特定字符分隔的純文本,結構簡單清晰。下面用一個簡單的實例來介紹CSV:
import csv with open(‘data.csv‘,‘w‘) as csvfile: writer = csv.writer(csvfile) writer.writerow([‘id‘,‘name‘,‘age‘]) writer.writerow([‘1001‘,‘jonas‘,18]) writer.writerow([‘1002‘,‘jerry‘,17]) writer.writerow([‘1003‘,‘tom‘,16])
首先,打開data.csv文件,然後指定打開的模式為w,獲得文件句柄,隨後調用csv庫的writer()方法初始化寫入對象,傳入該句柄,然後調用writerow()方法傳入每行的數據即可完成寫入。然後通過文本形式直接打開data.csv會發現,剛才寫入的數據都是通過逗號分隔開的,當然,在寫入的時候也可以修改這個分隔符:
import csv with open(‘data.csv‘,‘w‘) as csvfile: writer = csv.writer(csvfile,delimiter=‘ ‘) writer.writerow([‘id‘,‘name‘,‘age‘]) writer.writerow([‘1001‘,‘jonas‘,18]) writer.writerow([‘1002‘,‘jerry‘,17]) writer.writerow([‘1003‘,‘tom‘,16])
上面這裏指定空格為分隔符。另外,還可以通過調用writerows()方法同時寫入多行,此時參數就需要為二維列表:
import csv with open(‘data.csv‘,‘w‘) as csvfile: writer = csv.writer(csvfile) writer.writerow([‘id‘,‘name‘,‘age‘]) writer.writerows([[‘1001‘,‘jonas‘,18],[‘1002‘,‘jerry‘,17],[‘1003‘,‘tom‘,16]])
除此以外,csv庫還提供了字典的寫入方式:
import csv with open(‘data.csv‘,‘w‘) as csvfile: fieldnames = [‘id‘,‘name‘,‘age‘] writer = csv.DictWriter(csvfile,fieldnames=fieldnames) writer.writeheader() writer.writerow({‘id‘:1001,‘name‘:‘jonas‘,‘age‘:18}) writer.writerow({‘id‘:1002,‘name‘:‘jerry‘,‘age‘:20})
先定義3個字段,用fieldnames表示,然後將其傳給DictWriter來初始化一個字典寫入對象,接著可以調用writeheader()方法先寫入頭信息,然後再調用writerow()方法傳入相應字典。
除了上面介紹的寫入信息,還可以通過csv庫來讀取.csv的文件:
import csv with open(‘data.csv‘,‘r‘,encoding=‘utf-8‘) as csvfile: reader = csv.reader(csvfile) for row in reader: print(row)
通過遍歷輸出的每行結果都是一個列表。
CSV文件儲存