




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第零基礎也能看懂的python內(nèi)置csv模塊教程目錄csv(Comma-SeparatedValues)文件是什么?python中的csv文件清晰解法讀取文件寫入文件csv文件其它說明
csv(Comma-SeparatedValues)文件是什么?
它是一種文件格式,一般也被叫做逗號分隔值文件,可以使用Excel軟件或者文本文檔打開。
其中數(shù)據(jù)字段用半角逗號間隔(也可以使用其它字符),使用Excel打開時,逗號會被轉(zhuǎn)換為分隔符。
csv文件是以純文本形式存儲了表格數(shù)據(jù),并且在兼容各個操作系統(tǒng)。
例如下面的文本,在excel中就以表格的形式存在。
sid,name,age
10010,橡皮擦,18
10086,發(fā)量迷人的喬喻,19
10000,各位博主,20
下面就對python內(nèi)置模塊csv的用法進行簡單的說明。
python中的csv文件清晰解法
讀取文件
使用csv.reader()讀取csv文件內(nèi)容。
importcsv#模塊導入
withopen('aa.csv','r',newline='',encoding='utf-8')asf:
#_csv.readerobjectat0x00000000020918D0
reader=csv.reader(f)
forrinreader:
print(r)
其中csv.reader()方法的原型如下所示:
csv.reader(csvfile,dialect='excel',**fmtparams)
其中的參數(shù)csvfile可以是任何對象,但要求該對象是一個迭代器,所以文件對象和列表對象都可以傳入,如果是文件對象,還要求打開它時攜帶參數(shù)newline=''。后面的參數(shù)保持默認即可。
第二種方式是使用DictReader類,該類實現(xiàn)的效果與reader()方法一致,也是接收可迭代對象,返回生成器,差異是將返回的結(jié)果放到了一個字典的值內(nèi),字典的鍵就是單元格的標題。并且這樣輸出的函數(shù)是,不需要單獨處理csv的列頭行了。
importcsv#模塊導入
withopen('aa.csv','r',newline='',encoding='utf-8')asf:
reader=csv.DictReader(f)
forrinreader:
print(r)
輸出內(nèi)容:
OrderedDict([('sid','10010'),('name','橡皮擦'),('age','18')])
OrderedDict([('sid','10086'),('name','發(fā)量迷人的喬喻'),('age','19')])
OrderedDict([('sid','10000'),('name','各位博主'),('age','20')])
寫入文件
csv文件寫入用到的模塊方法是csv.writer(),該方法的原型如下:
csv.writer(csvfile,dialect='excel',**fmtparams)
最基本的寫入:
importcsv
withopen('abc.csv','w',newline='')ascsvfile:
w=csv.writer(csvfile)
#寫入列頭
w.writerow(["sid","name","age"])
w.writerow(["10010","橡皮擦","18"])
w.writerow(["10086","發(fā)量迷人的喬喻","18"])
這時如果你在打開文件時,缺少了newline='',那寫入csv文件內(nèi)容之后,會出現(xiàn)多余的換行。
除此之外,我們寫入csv文件的時候,可以啟用dialect(方言)參數(shù)。例如使用|作為列的分隔符。
此時的文件寫入代碼寫成下述內(nèi)容:
classmy_dialect(csv.Dialect):
lineterminator='\r\n'
delimiter=';'
quotechar='"'
quoting=csv.QUOTE_MINIMAL
withopen('abc.csv','w',newline='')ascsvfile:
w=csv.writer(csvfile,dialect=my_dialect)
#寫入列頭
w.writerow(["sid","name","age"])
w.writerow(["10010","橡皮擦","18"])
w.writerow(["10086","發(fā)量迷人的喬喻","18"])
上述代碼定義了一個新的類my_dialect,并使其繼承csv.Dialect類,重寫了其中的部分字段。
delimiter:分隔字符,默認為,;
lineterminator:writer方法寫入數(shù)據(jù)時,每行的結(jié)尾字符,默認為\r\n;
quotechar:單字符,用于包裹具有特殊字符的字段,例如定界符,引號字符,換行符,默認是";
quoting:控制writer何時生成引號,以及reader何時識別引號,默認是QUOTE_MINIMAL,其余幾個值分別是
QUOTE_ALL(全部加引號),
QUOTE_MINIMAL(特定情況加),
QUOTE_NONNUMERIC(所有非數(shù)字加),
QUOTE_NONE(都不加);
Writer對象的方法說明:
csvwriter.writerow(row):寫入單行;
csvwriter.writerows(rows):寫入多行
importcsv#模塊導入
csv_headers=['name','age']
rows=[('橡皮擦',18),
('發(fā)量迷人的喬喻',19),
('各位博主',20)]
withopen('./aa.csv','w',encoding='utf-8',newline='')asf:
csv_file=csv.writer(f)
csv_file.writerow(csv_headers)#寫入頭
csv_file.writerows(rows)
與DictReader類使用方法差不多,還存在一個DictWriter類,該類將以字段格式寫入csv文件字段。
importcsv
withopen('abc.csv','w',newline='')ascsvfile:
w=csv.DictWriter(csvfile,fieldnames=['sid','name','age'])
w.writeheader()#寫入列頭
w.writerow({'sid':'10010','name':'橡皮擦','age':18})
w.writerow({'sid':'10010','name':'橡皮擦','age':18})
w.writerow({'sid':'10010','name':'橡皮擦','age':18})
上述代碼尤其注意fieldnames參數(shù)是必填參數(shù),表示的是列頭,并且在寫入正式數(shù)據(jù)前,需使用w.writeheader()寫入列頭。
csv文件其它說明
關于csv方言,可以使用csv.register_dialect方法將name與dialect關聯(lián)起來,核心含義相當于給dialect起了一個別名。刪除也比較簡單,使用csv.unregister_dialect(name)即可。csv.list_dialects()返回已經(jīng)注冊的方言名稱,你可以在電腦上做一下測試,查看Python環(huán)境中提供的幾種方言。
importcsv
csv.register_dialect('ca',delimiter='|',quoting=csv.QUOTE_MINIMAL)
withopen('abc.csv','w',newline='')ascsvfile:
w=csv.DictWriter(csvfile,fieldnames=['sid','name','age'],dialect='ca')
w.writeheader()#寫入列頭
w.writerow({'sid':'10010','name':'橡皮擦','age':18})
w.writerow({'sid':'10010','name':'橡皮擦','age':18})
w.writerow({'sid':'10010','name':'橡皮擦','age':18})
csv模塊還提供了c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025荊門職業(yè)學院輔導員考試試題及答案
- 正畸治療中的口呼吸問題綜合解析
- 幼兒園健康課件《注意飲食衛(wèi)生》
- 健康體檢科護士課件
- 江蘇南通市如皋市科創(chuàng)投集團招聘筆試題庫2025
- 四川涼山州鹽源縣縣屬國有企業(yè)招聘筆試題庫2025
- 海洋靈感首飾設計
- 2025年中級財務會計考試試題及答案
- 消防工程師考試題及答案2025年
- 2025年運動康復與訓練方法課程學習考試試卷及答案
- 退教協(xié)工作總結(jié)范文(通用6篇)
- TSG-R0005-2022《移動式壓力容器安全技術(shù)監(jiān)察規(guī)程》(2022版)
- 《慧典電子病歷系統(tǒng)》操作手冊
- 配電室維保方案資料
- 下消化道出血診治PPT
- 醫(yī)院病房裝修改造工程施工方案
- 非相干散射雷達調(diào)研報告
- 設計概論 設計批評
- 醫(yī)院崗位設置與人員編制標準
- 晚設計我們的校園——校園環(huán)境藝術(shù)設計
- 電機電磁線圈設計程序..
評論
0/150
提交評論