1. 程式人生 > >CSV文件儲存

CSV文件儲存

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文件儲存