python中csv文件的创建、读取、修改等操作总结
1. python中創(chuàng)建新的csv文件
(1). 使用csv.writer()創(chuàng)建:
代碼如下:
import csvheaders = ['學(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中打開如下:
?用excel打開如下:
可以發(fā)現(xiàn),逗號(hào)','在csv文件中代表換格。除此以外,還有'\n'在csv文件中代表換行。?
(2). 使用csv.Dictwriter()創(chuàng)建:
代碼如下:
import csvheaders = ['學(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 csvheaders = ['學(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 tuplef.writelines(csv)會(huì)發(fā)現(xiàn)結(jié)果和方式1、方式2相同。?
?綜合上述三種方式,csv文件的創(chuàng)建靈活多樣,主要依賴于自己創(chuàng)建的原來數(shù)據(jù)的存放形式,比如方式1、2中的rows和方式3中的csv,以此選擇適合的創(chuàng)建csv文件的函數(shù)和方式。
-
實(shí)際示例(要靈活使用','、'\n'、append()等):
2. python中讀取csv文件
原score.csv文件在excel中打開如下:
(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ù)用來作為列名,數(shù)據(jù)開始行數(shù)。如果文件中沒有列名,則默認(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 npmy_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é)果如下:
?
如果想獲取某一列,可以通過指定的列標(biāo)號(hào)來查詢,代碼如下:
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é)果如下:
?
如果想獲取某一列,可以通過指定的標(biāo)題來查詢,代碼如下:
for row in reader:print(row['學(xué)號(hào)'])可以輸出指定的某一列,結(jié)果如下:
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的python中csv文件的创建、读取、修改等操作总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jsp+ssm计算机毕业设计游戏装备交易
- 下一篇: autobahn + Python 简易