小編寫(xiě)這篇文章的主要目的,主要還是給大家講解一下關(guān)于Python中CSV文件的相關(guān)內(nèi)容,教給怎么樣去對(duì)大批量的數(shù)據(jù),去進(jìn)行分割。比如如何分割CSV文件呢?下面給大家詳細(xì)解答一下。
一、csv文件介紹
1、csv文件簡(jiǎn)介
逗號(hào)分隔值(Comma-Separated Values,CSV,有時(shí)也稱為字符分隔值,因?yàn)榉指糇址部梢圆皇嵌禾?hào)),其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本)。純文本意味著該文件是一個(gè)字符序列,不含必須像二進(jìn)制數(shù)字那樣被解讀的數(shù)據(jù)。CSV文件由任意數(shù)目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組
成,字段間的分隔符是其它字符或字符串,最常見(jiàn)的是逗號(hào)或制表符。通常,所有記錄都有完全相同的字段序列。通常都是純文本文件。
2、為什么要使用csv文件
在Linux中我們可以通過(guò)命令在數(shù)據(jù)庫(kù)中把表導(dǎo)出來(lái)為csv結(jié)尾的文件,其實(shí)就是以逗號(hào)分割分txt文件,此文件我們可以在windows中打開(kāi)并且為表格的形式,方便我們進(jìn)行查看與再次操作。
eg:
MariaDB[test]>select*from表名into outfile"/tmp/test.csv"fields terminated by",";
二、csv文件查看
注意:這里我是把csv文件和python代碼都放在同級(jí)目錄,否則要指定路徑!?。?/p>
1、測(cè)試文件創(chuàng)建
?。?)這里我們以windows中的csv文件來(lái)做實(shí)驗(yàn)
(2)我們可以選中內(nèi)容復(fù)制進(jìn)去,也可以上傳到linux中,這里我們選擇前者
[root python _test]#vim test.csv###可以發(fā)現(xiàn)復(fù)制進(jìn)去的是以空格為分隔符 id username passwd age 1 dream1 123 21 2 dream2 456 22 3 dream3 789 23 ###把空格替換為逗號(hào) [root python _test]#sed-i's/s+/,/g'test.csv
2、查看csv文件(列表)
?。?)讀出結(jié)果
[root python _test]#vim _test.py #!/usr/bin/env python #coding:utf-8 import csv with open('test.csv',encoding="utf-8")as f: reader=csv.reader(f) print(reader) print(list(reader)) ###查看結(jié)果 [root python _test]#python _test.py <_csv.reader object at 0x7f54d9a01eb8> [['id','username','passwd','age'],['1','dream1','123','21'],['2','dream2','456','22'],['3','dream3','789','23']]
?。?)遍歷(從第一行讀?。?/p>
[root python _test]#vim _test.py #!/usr/bin/env python #coding:utf-8 import csv with open('test.csv',encoding="utf-8")as f: reader=csv.reader(f) for i in reader: print(reader.line_num,i) ###查看結(jié)果 [root python _test]#python _test.py 1['id','username','passwd','age'] 2['1','dream1','123','21'] 3['2','dream2','456','22'] 4['3','dream3','789','23']
3、查看csv文件(字典)
(1)查看
[root python _test]#vim _test.py #!/usr/bin/env python #coding:utf-8 import csv with open('test.csv',encoding="utf-8")as f: reader=csv.DictReader(f) ###表頭 print(reader.fieldnames) print(reader,type(reader)) for i in reader: print(i) ###查看結(jié)果 [root python _test]#python _test.py ['id','username','passwd','age'] <csv.DictReader object at 0x7f3b02213a20><class'csv.DictReader'> OrderedDict([('id','1'),('username','dream1'),('passwd','123'),('age','21')]) OrderedDict([('id','2'),('username','dream2'),('passwd','456'),('age','22')]) OrderedDict([('id','3'),('username','dream3'),('passwd','789'),('age','23')])
?。?)查看第一列(id)
優(yōu)點(diǎn):我們不知道表頭在具體那列,我們可以通過(guò)表頭名來(lái)獲取整列數(shù)據(jù),即我們可以隨便調(diào)整順序也不會(huì)影響我們的數(shù)據(jù)讀取?。?!
[root python _test]#vim _test.py #!/usr/bin/env python #coding:utf-8 import csv with open('test.csv',encoding="utf-8")as f: reader=csv.DictReader(f) for i in reader: print(i['id']) ###查看結(jié)果 [root python _test]#python _test.py 1 2 3
4、寫(xiě)入文件(列表)
[root python _test]#vim _test.py #!/usr/bin/env python #coding:utf-8 import csv li=[["id","user","性別"],["1","dreamya1","男"],["2","dreamya2","女"]] with open('user.csv','w',newline='')as f: writer=csv.writer(f) for i in li: writer.writerow(i) ###查看結(jié)果 [root python _test]#python _test.py [root python _test]#cat user.csv id,user,性別 1,dreamya1,男 2,dreamya2,女
下載到windows中查看:
[root python _test]#sz user.csv
5、寫(xiě)入文件(字典)
[root python _test]#vim _test.py import csv #coding:utf-8 headers=['id','username','passwd'] li=[{'id':'1','username':'dream1','passwd':'123'}, {'id':'2','username':'dream2','passwd':'456'}, ] with open('user.csv','w',newline='')as f: ###表頭傳入 writer=csv.DictWriter(f,headers) writer.writeheader() ###一行一行寫(xiě)入 for i in li: writer.writerow(i) ###直接把li寫(xiě)入(多行) writer.writerows(li) ###查看結(jié)果 [root python _test]#python _test.py [root python _test]#cat user.csv id,username,passwd 1,dream1,123 2,dream2,456 1,dream1,123 2,dream2,456
windows中查看:
[root python _test]#sz user.csv
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)?lái)幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/128360.html
csv文件其實(shí)就是單純的儲(chǔ)存文本數(shù)據(jù)的一種形式,那么,在日常的辦公當(dāng)中,要怎么做去提高其辦公的效率呢?比如,如何使用Python去批量的進(jìn)行處理文件,批量的處理csv文件,怎么將編碼轉(zhuǎn)換成為YTF-8的形式呢?下面給大家詳細(xì)的解答下?! ‘?dāng)我們用pandas是操作CSV文件的時(shí)候,常常會(huì)因?yàn)榫幋a問(wèn)題出現(xiàn)報(bào)錯(cuò)?! andas_libsparsers.pyx in pandas._libs.pa...
小編寫(xiě)這篇文章的主要目的,主要是講解一下關(guān)于Python的一些知識(shí),比如教大家怎么能夠?qū)崟r(shí)的去進(jìn)行寫(xiě)入數(shù)據(jù),提高工作的效率,關(guān)于其具體的代碼,下面小編給大家詳細(xì)解答下?! ≈霸谧鰯?shù)據(jù)分析的時(shí)候,我們需要處理大量高并發(fā)的數(shù)據(jù),比如對(duì)新的數(shù)據(jù)去進(jìn)行處理,那么,怎么處理呢?下面給大家進(jìn)行一個(gè)詳細(xì)的解答?! ?:實(shí)時(shí)向csv文件寫(xiě)入數(shù)據(jù) 假設(shè)需要生成一張csv表,里面的字段對(duì)應(yīng)一些數(shù)據(jù),由于后續(xù)的...
小編寫(xiě)這篇文章的一個(gè)主要目的,主要是給大家去做一個(gè)解答,解答的內(nèi)容主要是Python相關(guān)知識(shí),比如說(shuō),會(huì)給大家講解怎么樣去利用Python pandas去做一個(gè)讀取,讀取的是csv數(shù)據(jù),然后將這些數(shù)據(jù)去做一個(gè)繪圖處理,具體內(nèi)容下面給大家詳細(xì)解答?! ∪绾卫胮andas讀取csv數(shù)據(jù)并繪圖 導(dǎo)包,常用的numpy和pandas,繪圖模塊matplotlib, importmatplotli...
小編寫(xiě)這篇文章的主要目的,主要是給大家做一個(gè)解答,解答有幾個(gè)方向,包括利用python合并csv文件的一些相關(guān)實(shí)例,下面就給大家做出一個(gè)解答?! ?.用concat方法合并csv 將兩個(gè)相同的csv文件進(jìn)行數(shù)據(jù)合并,通過(guò)pandas的read_csv和to_csv來(lái)完成,即采用concat方法: #加載第三方庫(kù) importpandasaspd importnumpyasnp #...
小編寫(xiě)這篇文章的一個(gè)主要目的,主要是去給大家去做一些相關(guān)的一些介紹,涉及到內(nèi)容的還是比較多的,比如如何去進(jìn)行讀取千萬(wàn)級(jí)的一些數(shù)據(jù),并且將這些數(shù)據(jù)去自動(dòng)錄入到系統(tǒng)里面。錄入到系統(tǒng)里面之后,怎么才能夠?qū)氲組ySQL數(shù)據(jù)庫(kù)呢?下面就給大家詳細(xì)解答下?! ⌒蜓浴 ython數(shù)據(jù)如何去進(jìn)行讀取MySQL數(shù)據(jù)庫(kù)呢?這類工作在生活當(dāng)中是比較的普遍的,涉及到的內(nèi)容也是相關(guān)的一些python數(shù)據(jù)庫(kù),包括數(shù)據(jù)...
閱讀 923·2023-01-14 11:38
閱讀 895·2023-01-14 11:04
閱讀 756·2023-01-14 10:48
閱讀 2055·2023-01-14 10:34
閱讀 961·2023-01-14 10:24
閱讀 840·2023-01-14 10:18
閱讀 510·2023-01-14 10:09
閱讀 588·2023-01-14 10:02