python中csv文件創(chuàng)建、讀取及修改等操作實(shí)例
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中打開如下:
用excel打開如下:
可以發(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)建的原來數(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中打開如下:
(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 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é)果如下:
如果想獲取某一列,可以通過指定的列標(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é)
到此這篇關(guān)于python中csv文件創(chuàng)建、讀取及修改等操作的文章就介紹到這了,更多相關(guān)python csv文件創(chuàng)建讀取及修改內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用beaker讓Facebook的Bottle框架支持session功能
這篇文章主要介紹了使用beaker讓Facebook的Bottle框架支持session功能,session在Python的Django等框架中內(nèi)置但在Bottle中并沒有被集成,需要的朋友可以參考下2015-04-04Python-docx 實(shí)現(xiàn)整體修改或者部分修改文字的大小和字體類型
這篇文章主要介紹了Python-docx 實(shí)現(xiàn)整體修改或者部分修改文字的大小和字體類型,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03Python實(shí)現(xiàn)基于二叉樹存儲(chǔ)結(jié)構(gòu)的堆排序算法示例
這篇文章主要介紹了Python實(shí)現(xiàn)基于二叉樹存儲(chǔ)結(jié)構(gòu)的堆排序算法,結(jié)合實(shí)例形式分析了Python二叉樹的定義、遍歷及堆排序算法相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-12-12Python實(shí)現(xiàn)復(fù)制文檔數(shù)據(jù)
我們百度搜索一些東西得時(shí)候,經(jīng)常找到文檔里面然后就會(huì)發(fā)現(xiàn)需要充值才能復(fù)制!怎么可以不花錢也保存呢?今天就分享給大家一個(gè)python獲取文檔數(shù)據(jù)得方法,需要的可以收藏一下2022-12-12關(guān)于django 1.10 CSRF驗(yàn)證失敗的解決方法
今天小編就為大家分享一篇關(guān)于django 1.10 CSRF驗(yàn)證失敗的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08Python實(shí)現(xiàn)語音轉(zhuǎn)文本的兩種方法
這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)語音轉(zhuǎn)文本的兩種方法,Python提供了許多工具和庫(kù)來進(jìn)行這些任務(wù),本文通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06使用Python實(shí)現(xiàn)文字轉(zhuǎn)語音并播放功能
這篇文章主要給大家介紹了使用Python實(shí)現(xiàn)文字轉(zhuǎn)語音并播放功能,文中通過代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-01-01python OpenCV的imread不能讀取中文路徑問題及解決
這篇文章主要介紹了python OpenCV的imread不能讀取中文路徑問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07