網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
1. python中創(chuàng)建新的csv文件
(1). 使用csv.writer()創(chuàng)建:
代碼如下:
import csv
headers = ['學(xué)號(hào)','姓名','分?jǐn)?shù)']
rows = [('202001','張三','98'),
('202002','李四','95'),
('202003','王五','92')]
with open('score.csv','w',encoding='utf8',newline='') as f :
writer = csv.writer(f)
writer.writerow(headers)
writer.writerows(rows)
會(huì)在相同路徑下生成一個(gè)score.csv文件?
?VScode中打開(kāi)如下:
?用excel打開(kāi)如下:
可以發(fā)現(xiàn),逗號(hào)','在csv文件中代表?yè)Q格。除此以外,還有'\n'在csv文件中代表?yè)Q行。?
(2). 使用csv.Dictwriter()創(chuàng)建:
代碼如下:
import csv
headers = ['學(xué)號(hào)','姓名','分?jǐn)?shù)']
rows = [{'學(xué)號(hào)':'202001','姓名':'張三','分?jǐn)?shù)':'98'},
{'學(xué)號(hào)':'202002','姓名':'李四','分?jǐn)?shù)':'95'},
{'學(xué)號(hào)':'202003','姓名':'王五','分?jǐn)?shù)':'92'}]
with open('score.csv','w',encoding='utf8',newline='') as f :
writer = csv.DictWriter(f,headers)
writer.writeheader()
writer.writerows(rows)
會(huì)發(fā)現(xiàn)結(jié)果和方式1相同。
(3). 使用writelines()創(chuàng)建:
import csv
headers = ['學(xué)號(hào),姓名,分?jǐn)?shù)','\n']
csv = ['202001,張三,98','\n',
'202002,李四,95','\n',
'202003,王五,92']
with open('score.csv', 'w',encoding='utf8',newline='') as f:
f.writelines(headers) # write() argument must be str, not tuple
f.writelines(csv)
會(huì)發(fā)現(xiàn)結(jié)果和方式1、方式2相同。?
?綜合上述三種方式,csv文件的創(chuàng)建靈活多樣,主要依賴于自己創(chuàng)建的原來(lái)數(shù)據(jù)的存放形式,比如方式1、2中的rows和方式3中的csv,以此選擇適合的創(chuàng)建csv文件的函數(shù)和方式。
實(shí)際示例(要靈活使用','、'\n'、append()等):
csv = []
for line in lines:
scores = result[line[0]]
for wav, scores in scores.items():
# csv.append(line[0])
# csv.append(wav)
# csv.append(str(i) for i in scores)
# csv.append('\n')
#csv.append(','.join([wav] + [str(i) for i in scores] + '\n'))
csv.append(line[0] +','+ wav )
for i in scores:
csv.append(','+ str(i))
csv.append('\n')
with open('task3-result.csv', 'w') as f:
f.writelines(csv)
2. python中讀取csv文件
原score.csv文件在excel中打開(kāi)如下:
(1). 使用pandas.read_csv()讀取
代碼如下:?
import pandas as pd
my_matrix = pd.read_csv('score.csv')#,header=None,index_col=None)
'''
header : int or list of ints, default ‘infer',指定行數(shù)用來(lái)作為列名,數(shù)據(jù)開(kāi)始行數(shù)。如果文件中沒(méi)有列名,則默認(rèn)為0,
index_col : int or sequence or False, default None,用作行索引的列編號(hào)或者列名
'''
print(my_matrix)
print(my_matrix.shape)
此時(shí)的輸出結(jié)果為:
若代碼參數(shù)改為:
my_matrix = pd.read_csv('score.csv',header=None,index_col=None)
結(jié)果如下:
若代碼參數(shù)改為:
my_matrix = pd.read_csv('score.csv',header=0,index_col=0)
結(jié)果如下:
為了方便后續(xù)分析,可以將數(shù)據(jù)類型改為np.array型,代碼如下:
import pandas as pd
import numpy as np
my_matrix = pd.read_csv('score.csv')#,header=0,index_col=0)
my_matrix = np.array(my_matrix)
print(my_matrix)
print(my_matrix.shape)
print(my_matrix[0][0])
結(jié)果如下:
?(2). 使用csv.reader()進(jìn)行讀取
代碼如下:
import csv
#讀取csv文件
with open('score.csv', "r",encoding='utf8',newline='') as f:
reader = csv.reader(f)
for row in reader:
print(row)
結(jié)果如下:
如果想獲取某一列,可以通過(guò)指定的列標(biāo)號(hào)來(lái)查詢,代碼如下:
for row in reader:
print(row[0])
可以輸出某一指定的列 ,結(jié)果如下:
?(3). 使用csv.DictReader()進(jìn)行讀取
代碼如下:
import csv
#讀取csv文件
with open('score.csv', "r",encoding='utf8',newline='') as f:
reader = csv.DictReader(f)
for row in reader:
print(row)
結(jié)果如下:
如果想獲取某一列,可以通過(guò)指定的標(biāo)題來(lái)查詢,代碼如下:
for row in reader:
print(row['學(xué)號(hào)'])
可以輸出指定的某一列,結(jié)果如下:
總結(jié)
原文鏈接:https://blog.csdn.net/m0_46483236/article/details/109583685
相關(guān)推薦
- 2022-10-18 shell腳本批量將文件復(fù)制到指定的文件夾下_linux shell
- 2023-03-13 Android?BottomNavigationView與Fragment重建與重疊問(wèn)題解決方法探索
- 2022-05-10 SpringMVC學(xué)習(xí)Controller注解以及restful風(fēng)格
- 2023-03-19 一文掌握匯編語(yǔ)言?halt?命令_匯編語(yǔ)言
- 2022-09-08 Go語(yǔ)言中并發(fā)的工作原理_Golang
- 2022-07-09 Docker可視化、數(shù)據(jù)持久化
- 2022-06-09 ASP.NET?Core使用EF創(chuàng)建模型(包含屬性、排除屬性、主鍵和生成值)_實(shí)用技巧
- 2023-03-21 SQL數(shù)據(jù)庫(kù)的所有命令(函數(shù)、運(yùn)算符)匯總大全_數(shù)據(jù)庫(kù)其它
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支