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