歡迎來到培訓(xùn)無憂網(wǎng)!
咨詢熱線 400-001-5729
2021-11-22 21:51:39|已瀏覽:411次
Python中的csv模塊
1. csv模塊說明:
1.1 默認(rèn)讀寫用逗號(hào)做分隔符(delimiter),雙引號(hào)作引用符(quotechar)
1.2 用writer寫數(shù)據(jù)None被寫成空字符串,浮點(diǎn)型調(diào)用repr()轉(zhuǎn)化成字符串。非字符串型數(shù)據(jù)被str()成字符串存儲(chǔ)。
1.3 open函數(shù)
import locale ; locale.getpreferredencoding()# 查看本地編碼'cp936'
open('some.csv', newline='', encoding='utf-8')
# 使用系統(tǒng)默認(rèn)編碼將文件解碼為unicode可使用不同的編碼解碼文件
# 如果newline=''沒有指定,嵌入引用字段內(nèi)換行符將不會(huì)被正確地解釋
4)RFC 4180 提供了一些標(biāo)準(zhǔn):
# 內(nèi)容為純文本;包含記錄
# 每條記錄是用單個(gè)分隔字符將各屬性分隔
# 每條記錄的屬性序列是相同的pandas可以通過PyPI的 pip安裝 。
2.模塊內(nèi)容
2.1模塊常量:引用約定
quoting=csv.QUOTE_MINIMAL =0 # writer對(duì)象只引用那些包含特殊字符
quoting=csv.QUOTE_ALL=1 # writer對(duì)象引用所有字段
# 如字段分隔符,quotechar或任何字符
lineterminator。
quoting=csv.QUOTE_NONNUMERIC=2 # writer對(duì)象引用所有非數(shù)字字段。
# 指示讀者將所有非引用字段轉(zhuǎn)換為float類型。
quoting=csv.QUOTE_NONE=3,escapechar='$'# writer對(duì)象不引用字段
# 如未設(shè)置escapechar錯(cuò)誤拋出;指示reader不對(duì)引號(hào)字符執(zhí)行特殊處理。
2.21.函數(shù):
csv.reader(f,dialect ='excel',** fmtparams )# 返回一個(gè)讀取器對(duì)象,它將迭代給定csv文件中的行。
# 屬性:
csv.reader().dialect
csv.reader().line_num
csv.writer(f,dialect ='excel',** fmtparams ) # 返回一個(gè)編寫器對(duì)象,負(fù)責(zé)將用戶的數(shù)據(jù)轉(zhuǎn)換為給定類文件對(duì)象上的分隔字符串
# 屬性方法:
writer.writerow
writer.writerows
writer.dialect
csv.DictReader()#字典讀
# 方法:
csv.DictReader().__next__()# 稱之為next(reader)
# 屬性:
csvreader.dialect # 解析器使用的方言的只讀描述。
csvreader.line_num # 從源迭代器讀取的行數(shù)。這與返回的記錄數(shù)不同,因?yàn)橛涗浛梢钥缭蕉嘈小?/span>
csvreader.fieldnames# 從文件中讀取第一條記錄時(shí)初始化此屬性
csv.DictWriter()
# 方法:
csvwriter.writerow(row) # 將row寫入writer的文件對(duì)象,根據(jù)當(dāng)前方言進(jìn)行格式化。支持迭代
csvwriter.writerows(rows)# 將行中的所有元素寫入編寫器的文件對(duì)象,并根據(jù)當(dāng)前方言進(jìn)行格式化。支持迭代
DictWriter.writeheader() # 公共方法:用字段名稱寫一行
# 屬性:
csvwriter.dialect # 使用的方言只讀描述
# 返回所有已注冊(cè)方言的名稱。
# 數(shù)據(jù)讀取
# import csv
# with open(r'C:\Users\Alienware\Desktop\test.csv','r') as f:
# all = csv.reader(f) #讀取所有數(shù)據(jù) 返回一個(gè)csv對(duì)象
# print(type(all))
# for i in all: #遍歷csv對(duì)象 返回csv文件中的所有數(shù)據(jù) list類型
# print(i)
# 數(shù)據(jù)寫入import csv#newline=''表示新行用空字符表示 這樣換行寫入數(shù)據(jù)時(shí)就不會(huì)出現(xiàn)空行
with open(r'C:\Users\Alienware\Desktop\test.csv','a',newline='') as f:
all = csv.writer(f)
#傳入列表類型的數(shù)據(jù) 第一個(gè)元素對(duì)應(yīng)第一列 第二個(gè)元素對(duì)應(yīng)第二列
# all.writerow(['admin',7]) #一行一行寫入
all.writerows([['name','zhangsan'],['class','baoan10']]) #多行寫入
本文由培訓(xùn)無憂網(wǎng)千鋒教育專屬課程顧問整理發(fā)布,希望能夠?qū)ο雽W(xué)習(xí)Python開發(fā)培訓(xùn)的同學(xué)有所幫助。更多Python開發(fā)培訓(xùn)課程歡迎關(guān)注培訓(xùn)無憂網(wǎng)Python開發(fā)培訓(xùn)頻道或添加老師微信:15033336050
注:尊重原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處和鏈接 http://m.hebeijilong.cn/news-id-4522.html 違者必究!部分文章來源于網(wǎng)絡(luò)由培訓(xùn)無憂網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實(shí)性請(qǐng)自行核實(shí)或聯(lián)系我們,了解更多相關(guān)資訊請(qǐng)關(guān)注python培訓(xùn)頻道查看更多,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費(fèi)申請(qǐng)?jiān)囌n。關(guān)注官方微信了解更多:150 3333 6050