網站首頁 編程語言 正文
前言
CSV(Comma-Separated Values)即逗號分隔值,一種以逗號分隔按行存儲的文本文件,所有的值都表現為字符串類型(注意:數字為字符串類型)。如果CSV中有中文,應以utf-8編碼讀寫.
1.導入CSV庫
python中對csv文件有自帶的庫可以使用,當我們要對csv文件進行讀寫的時候直接導入即可。
import csv
2.對CSV文件進行讀寫
2.1 用列表形式寫入CSV文件
語法:csv.writer(f):
writer支持writerow(列表)單行寫入,和writerows(嵌套列表)批量寫入多行,無須手動保存。
import csv
header = ['name','age','QQ_num','wechat']
data = [['suliang','21','787991021','lxzy787991021']]
with open ('information.csv','w',encoding='utf-8',newline='') as fp:
# 寫
writer =csv.writer(fp)
# 設置第一行標題頭
writer.writerow(header)
# 將數據寫入
writer.writerows(data)
結果:
注意:打開文件時應指定格式為w, 文本寫入.
打開文件時,指定不自動添加新行newline=‘’,否則每寫入一行就或多一個空行。
2.2 用列表形式讀取CSV文件
語法:csv.reader(f, delimiter=‘,’)
reader為生成器,每次讀取一行,每行數據為列表格式,可以通過delimiter參數指定分隔符
import csv
with open('information.csv',encoding='utf-8')as fp:
reader = csv.reader(fp)
# 獲取標題
header = next(reader)
print(header)
# 遍歷數據
for i in reader:
print(i)
結果:
讀取文件時文件路徑務必要寫對,不確定時可寫絕對路徑。要獲取csv的內容則需要遍歷再輸出。
2.3 用字典形式寫入csv文件
語法:csv.DicWriter(f):
寫入時可使用writeheader()寫入標題,然后使用writerow(字典格式數據行)或writerows(多行數據)
import csv
header = ['name','age']
data = [{'name':'suliang','age':'21'},
{'name':'xiaoming','age':'22'},
{'name':'xiaohu','age':'25'}]
with open ('information.csv','w',encoding='utf-8',newline='') as fp:
# 寫
writer =csv.DictWriter(fp,header)
# 寫入標題
writer.writeheader()
# 將數據寫入
writer.writerows(data)
結果:
2.4 用字典形式讀取csv文件
語法:csv.DicReader(f, delimiter=‘,’)
直接將標題和每一列數據組裝成有序字典(OrderedDict)格式,無須再單獨讀取標題行
import csv
with open('information.csv',encoding='utf-8')as fp:
reader = csv.DictReader(fp)
for i in reader
print(i)
結果:
附:csv讀寫的模式
- r:以讀方式打開文件,可讀取文件信息
- w: 已寫方式打開文件,可向文件寫入信息。如文件存在,則清空,再寫入
- a:以追加模式打開文件,打開文件可指針移至末尾,文件不存在則創建
- r+:以讀寫方式打開文件,可對文件進行讀和寫操作
- w+:消除文件內容,以讀寫方式打開文件
- a+:以讀寫方式打開文件,文件指針移至末尾
- b:以二進制打開文件
結語
原文鏈接:https://blog.csdn.net/weixin_46277553/article/details/124383210
相關推薦
- 2022-04-16 詳解C語言通過遞歸與非遞歸實現蛇形矩陣_C 語言
- 2022-06-20 k8s在go語言中的使用及client?初始化簡介_Golang
- 2022-03-14 文件上傳錯誤the request doesn't contain a multipart/form
- 2022-08-20 C++?基礎函數的介紹及使用(Vector+deque+STL)_C 語言
- 2022-10-12 深入淺出Golang中select的實現原理_Golang
- 2022-05-27 C語言實現數獨小游戲_C 語言
- 2022-06-19 Tomcat?starup.bat腳本開機自啟動的實現_Tomcat
- 2022-03-22 .NET?6開發TodoList實現請求日志組件HttpLogging_實用技巧
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支