逗號分隔值(comma-sparated value,csv),通常用在電子**與資料庫最常用的匯入和匯出格式。也是電子**軟體與純文字之間互動資料。實際上,csv都不算是乙個真正的結構化資料,csv檔案內容僅僅是一些用逗號分隔的原始字串值。
csv模組以reader和writer物件來讀取和寫入序列。程式設計師還可以使用dictreader和dictwriter類以字典形式讀寫資料。
csv.reader(csvfile,dialect =『excel』,** fmtparams )
建立乙個讀取器物件。
從csv檔案讀取的每一行都作為字串列表返回。
檔案內容如下:
world@12@hello
import csv
import os
import sys
if __name__ ==
"__main__"
:with
open
('test.csv'
,'r'
)as p:
myreader = csv.reader(p)
for item in myreader:
print
(item)
#將列表轉換成字串:
p.close(
)
讀出結果如下,以列**式返回每行內容:
[
'world@12@hello'
]
csv.writer(csvfile,dialect =『excel』,** fmtparams )
返回乙個writer物件,負責將使用者的資料轉換為dialect引數指定的檔案型別的分隔字串。
測試例1:
以dialect='excel』型別寫入(逗號分隔)
#!/usr/bin/python
#encoding:utf8
import csv
import os
import sys
if __name__ ==
"__main__"
: csv.register_dialect(
'mycsv'
,mycsv)
mylist =
['戰三',12
,'hello'
]with
open
('test.csv'
,'a'
)as f:
mywriter = csv.writer(f,dialect=
'excel'
)#以excel csv型別寫入(逗號分隔)
mywriter.writerow(mylist)
f.close(
)
寫入結果如下(逗號分隔):
戰三,
12,hello
測試例2:
以dialect='excel-tab』型別寫入(空格分隔)
#!/usr/bin/python
#encoding:utf8
import csv
import os
import sys
if __name__ ==
"__main__"
: csv.register_dialect(
'mycsv'
,mycsv)
mylist =
['戰三',12
,'hello'
]with
open
('test.csv'
,'a'
)as f:
mywriter = csv.writer(f,dialect=
'excel-tab'
)#以excel-tab csv型別寫入(tab分隔)
mywriter.writerow(mylist)
f.close(
)
寫入結果如下:
戰三 12 hello
自定義乙個以@符合為分隔符的csv檔案,主要研究的的是csv檔案中csv.dialect類
1
#!/usr/bin/python
2#coding:utf834
import os
5import csv
6import sys
78#定義新的檔案格式,字段分割符為 '@'
9class
mycsv
(csv.excel)
:10 delimiter =
"@"11
1213
if __name__ ==
"__main__":14
#註冊新類
15 csv.register_dialect(
"mycsv"
,mycsv)
16 mylist =
['daihui'
,10086,21
]17#將mylist以新mycsv型別寫入檔案
18 kk = csv.writer(
open
('test.mycsv'
,'a'
),mycsv)
19 kk.writerow(mylist)
執行完畢後,檢視新建的test.mycsv檔案,內容如下:
daihui@10086@21
自定義生效。
class csv.dictreader(f,fieldnames = none,restkey = none,restval = none,dialect =『excel』,* args,** kwds )
建立乙個像常規閱讀器一樣操作的物件,但將每行中的資訊對映到ordereddict 其鍵由可選的fieldnames引數給出。
#!/usr/bin/python
#encoding:utf8
import csv
import os
import sys
if __name__ ==
"__main__"
: list1 =
['name'
,'age'
,'color'
]#每個欄位的鍵
with
open
('test.csv'
,'r'
)as p:
myreader = csv.dictreader(p,list1,dialect=
'excel-tab'
)for item in myreader:
print
(item)
#將列表轉換成字串:
p.close(
)
檔案內容:
json 12 blue
讀出的資料如下:
class csv.dictwriter(f,fieldnames,restval =』』,extrasaction =『raise』,dialect =『excel』,* args,** kwds )
建立乙個像常規編寫器一樣操作的物件,但將字典對映到輸出行。
list1 =
['name'
,'age'
,'color'
]with
open
('test.csv'
,'a'
)as p:
mywriter = csv.dictwriter(p,list1)
mywriter.writerow(
) p.close(
)
寫入結果:
jack,
12,red
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模組簡介
2.參考資料 csv檔案格式是一種通用的電子 和資料庫匯入匯出格式。最近我呼叫rpc處理伺服器資料時,經常需要將資料做個存檔便使用了這一方便的格式。python csv模組封裝了常用的功能,使用的簡單例子如下 讀取csv檔案 import csv with open some.csv rb as f...