Python CSV模組簡介

2021-10-01 14:04:06 字數 2207 閱讀 6955

2. 參考資料

csv檔案格式是一種通用的電子**和資料庫匯入匯出格式。最近我呼叫rpc處理伺服器資料時,經常需要將資料做個存檔便使用了這一方便的格式。

python csv模組封裝了常用的功能,使用的簡單例子如下:

# 讀取csv檔案

import csv

with open('some.csv', 'rb') as f: # 採用b的方式處理可以省去很多問題

reader = csv.reader(f)

for row in reader:

# do something with row, such as row[0],row[1]

import csv

with open('some.csv', 'wb') as f: # 採用b的方式處理可以省去很多問題

writer = csv.writer(f)

writer.writerows(someiterable)

預設的情況下, 讀和寫使用逗號做分隔符(delimiter),用雙引號作為引用符(quotechar),當遇到特殊情況是,可以根據需要手動指定字元, 例如:

import csv

with open('passwd', 'rb') as f:

reader = csv.reader(f, delimiter=':', quoting=csv.quote_none)

for row in reader:

print row

上述示例指定冒號作為分隔符,並且指定quote方式為不引用。這意味著讀的時候都認為內容是不被預設引用符(")包圍的。quoting的可選項為:quote_all, quote_minimal, quote_nonnumeric, quote_none.

有點需要注意的是,當用writer寫資料時,none會被寫成空字串,浮點型別會被呼叫repr()方法轉化成字串。所以非字串型別的資料會被str()成字串儲存。所以當涉及到unicode字串時,可以自己手動編碼後儲存或者使用csv提供的unicodewriter, 具體可參見這裡。

csv還提供了一種類似於字典方式的讀寫,方式如下:

格式如下:

class csv.dictreader(csvfile, fieldnames=none, restkey=none, restval=none, dialect='excel', *args, **kwds)

class csv.dictwriter(csvfile, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)

其中fieldnames指定字典的key值,如果reader裡沒有指定那麼預設第一行的元素,在writer裡一定要指定這個。

使用示例

# 讀

>>> import csv

>>> with open('names.csv') as csvfile:

... reader = csv.dictreader(csvfile)

... for row in reader:

... print(row['first_name'], row['last_name'])

...baked beans

lovely spam

wonderful spam

# 寫import csv

with open('names.csv', 'w') as csvfile:

fieldnames = ['first_name', 'last_name']

writer = csv.dictwriter(csvfile, fieldnames=fieldnames)

writer.writeheader()

writer.writerow()

writer.writerow()

writer.writerow()

csv模組還涉及了其它的概念,比如dialects, 還提供了供錯誤處理的exception csv.error等,因為實際使用較少及就不累贅在此。更多參考官方文件。

Python csv模組學習

csv cmma separated values 是逗號分隔值 也稱字元分隔值,因為分隔符可以不是逗號 的簡寫。是一種常用的文字格式,用以儲存 資料,包括數字或者字元。純文字意味著該檔案是乙個字串行,不含必須像二進位制數字那樣被解讀的資料。csv檔案由任意數目的記錄組成,記錄間以某種換行符分隔 每...

python csv模組練習

建立,寫入,讀取 coding utf 8 import csv 作用 csv模組練習 def create with open b data.csv wb as file 不存在會建立 w csv.writer file,delimiter 指定分割字元,預設 w.writerow 姓名 性別 年...

Python csv模組的使用

csv comma separated values 即逗號分隔值 也稱字元分隔值,因為分隔符可以不是逗號 是一種常用的文字 格式,用以儲存 資料,包括數字或者字元。很多程式在處理資料時都會碰到csv這種格式的檔案,它的使用是比 較廣泛的 kaggle上一些題目提供的資料就是csv格式 csv雖然使...