標籤:python
Introduce
CSV (Cmma-Separated Values)是逗號分隔值(也稱字元分隔值,因為分隔字元可以不是逗號)的簡寫。是一種常用的文字格式設定,用以儲存表格式資料,包括數字或者字元。
純文字意味著該檔案是一個字元序列,不含必須像位元字那樣被解讀的資料。CSV檔案由任意數目的記錄組成,記錄間以某種分行符號分隔;每條記錄由欄位組成,欄位間的分隔字元是其它字元或字串,最常見的是逗號或定位字元。通常,所有記錄都有完全相同的欄位序列。
本文通過例子簡單介紹csv模組中最常用的一些函數。
更多內容見官網:https://docs.python.org/2/library/csv.html
Getting Start
python中的csv模組的主要函數有下面兩個:
csv.reader(csvfile, dialect=‘excel‘, **fmtparams)
- 傳回值:一個reader對象,這個對象是可以迭代的,有個line_num參數,表示當前行數
- 參數表:
- csvfile
需要是支援迭代(Iterator)的對象,並且每次調用next方法的傳回值是字串(string),通常的檔案(file)對象,或者列表(list)對象都是適用的
- dialect
編碼風格,預設為excel方式,也就是逗號(,)分隔,另外csv模組也支援excel-tab風格,也就是定位字元(tab)分隔。其它的方式需要自己定義,然後可以調用register_dialect方法來註冊,以及list_dialects方法來查詢登入的所有編碼風格列表。
- fmtparam
格式化參數,用來覆蓋之前dialect對象指定的編碼風格。
csv.writer(csvfile, dialect=‘excel‘, **fmtparams)
- 傳回值:返回一個writer對象,這個對象有兩個函數writerow()和writerows()
- 參數表:跟csv.reader()的參數表一樣
樣本
import csv# 讀取一個 csv 檔案myfilepath = ‘C:/Users/a/Desktop/mytablib.csvNew‘# 這裡用到的 open 都要加上 newline=‘‘ 否則會多一個分行符號(標準庫文檔裡說的)myfile = open(myfilepath, ‘r‘, newline=‘‘)myreader = csv.reader(myfile)for row in myreader: if myreader.line_num == 1 : # line_num是從 1 開始計數的 continue for i in row : # row是一個列表 print(i, end=‘ ‘) print()myfile.close() # 記得 close 檔案# 寫入一個已經存在的檔案myfile = open(myfilepath, ‘a‘, newline=‘‘) # 使用append模式開啟檔案mywriter = csv.writer(myfile)mywriter.writerow((3, ‘wang‘, 25)) # 加入一行mywriter.writerow((4, ‘zhou‘, 38))mywriter.writerows([[5, ‘zhao‘, 16],[6, ‘qian‘, 28]]) # 加入多行myfile.close()
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
Python csv模組學習