python CSV模組 研究1

2021-09-21 12:59:52 字數 4007 閱讀 7452

逗號分隔值(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...