csv釋義
逗號分隔值(comma-separated values,csv,有時也稱為字元分隔值,因為分隔字元也可以不是逗號),其檔案以純文字形式儲存**資料(數字和文字)。純文字意味著該檔案是乙個字串行,不含必須像二進位制數字那樣被解讀的資料。csv檔案由任意數目的記錄組成,記錄間以某種換行符分隔;每條記錄由欄位組成,欄位間的分隔符是其它字元或字串,最常見的是逗號或製表符。通常,所有記錄都有完全相同的字段序列。通常都是純文字檔案。建議使用wordpad或是記事本(note)來開啟,再則先另存新檔後用excel開啟,也是方法之一。
讀取csv檔案
reader(filename),可以使用reader()方法來建立乙個物件從csv檔案中讀取資料。
官方文件:csv.reader(csvfile, dialect='excel', **fmtparams) //csvfile是任何可以迭代的物件(如果是檔案物件則用newline=''來開啟它),dialect翻譯為方言用於定製解析器來解析資料,**fmtparams為解析器引數
讀檔案時,輸入資料的每一行都會解析,並返回乙個列表
建立乙個csv檔案寫入如下資料,python讀取:
寫csv檔案writer(filename),使用writer方法來寫資料
csv.writer(csvfile, dialect='excel', **fmtparams) //引數與讀完全基本相同
寫一段**來測試
import['name', 'tel', 'address', 'age']csvwith open(
'test1.csv
','w
',newline=''
) as f:
writer =csv.writer(f)
writer.writerow((
'name
', '
tel', '
address
', '
age'
)) writer.writerow((
'zhang
', 15111111111, '
beijing
', 33
)) writer.writerow(('li
', 13822222222, '
wuhan
', 28
)) writer.writerow((
'liu
', 15933333333, '
hainan
', 25
))with open(
'test1.csv
','r
',newline=''
) as f:
reader =csv.reader(f)
for i in
reader:
print(i)
結果:
['zhang', '15111111111', 'beijing', '33']
['li', '13822222222', 'wuhan', '28']
['liu', '15933333333', 'hainan', '25']
發現結果與輸入不同,預設引號模式的原因
寫檔案時可用quoting來設定引號模式
預設為:writer = csv.writer(f,quoting=csv.quote_nonnumeric) //非數字加引號
可改為:
quote_all:所有欄位加引號
quote_minimal:特殊欄位加引號
quote_none:都不加引號
方言
用於定製解析器,無需將各個引數單獨傳入閱讀器和書寫器,可以組成一起構成乙個方言物件
標準庫包括兩個方言:excel和excel-tabs,預設為excel
csv方言引數:
屬性預設值
含義delimiter
,字段分隔符
doublequote
true
控制quotechar例項是否成對
escapechar
none
指示乙個轉義序列
lineterminator
\r\n
書寫器使用這個結束一行
quotechar
"用來包圍含特殊字元的字段
quoting
quote_minimal
控制引號行為
skipinitialspace
false
忽略字元定界符前的空白符
將」行「轉換為字典
dictreader和dictwriter類將行轉化為字典而非行
官方文件:class csv.dictreader(csvfile, fieldnames=none, restkey=none, restval=none, dialect='excel', *args, **kwds)
引數說明:
fieldnames:字典的鍵,預設為第一行資料
restkey:若所讀行欄位多餘給出的鍵個數,剩餘鍵由restkey給出
restkey:若所讀行欄位少於給出的鍵個數,剩餘值由restval給出
例如上述test1.csv檔案
with open('dictwriter類似dictreader,提供乙個列表作為鍵test1.csv
','r
',newline=''
) as f:
reader =csv.dictreader(f)
for i in
reader:
print(i)
結果:
writer = csv.dictwriter(f,list)
官方文件:class csv.dictwriter(csvfile, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)
更多詳細解釋可訪問python標準庫
Python讀寫csv檔案
1.寫入並生成csv檔案 coding utf 8 import csv csvfile file csv test.csv wb writer csv.writer csvfile writer.writerow 姓名 年齡 data 小河 25 1234567 小芳 18 789456 writ...
python 讀寫csv檔案
1.忽略第一行標題的基礎上 python2.7 coding utf 8 import csv csv reader csv.reader open r c users thinkpad desktop tweets.csv for row in csv reader 條件語句忽略第一行檔案資料 i...
python 讀寫csv檔案
1.將dataframe資料寫入csv 1 用 csv包一行一行的寫入 import csv python2可以用file替代open with open test.csv w as csvfile writer csv.writer csvfile 先寫入columns name writer.w...