CSV格式文件儲存

? ?CSV马靠,全稱為Comma-Separated Values卷拘,中文可以叫作逗號分隔值或字符分隔值仿耽,其文件以純文本形式存儲表格數(shù)據眯搭。它比Excel文件更加簡介窥翩,XLS文本是電子表格,它包含了文本鳞仙、數(shù)值、公式和格式等內容笔时,而CSV中不包含這些內容棍好,就是特定字符分隔的純文本,結構簡單清晰允耿。所以借笙,有時候用CSV來保存數(shù)據是比較方便的
?本文用python代碼實現(xiàn)CSV文件的寫入和讀取方式。這也是一種常用的數(shù)據存儲方式较锡,需要熟練掌握

1.寫入

?首先业稼,打開data.csv文件,然后指定打開的模式為w(即寫入)蚂蕴,獲得文件句柄低散,隨后調用csv庫的writer()方法初始化寫入對象俯邓,傳入該句柄,然后調用writerow()方法傳入每行的數(shù)據即可完成寫入熔号。

import csv

with open('data.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(['id', 'name', 'age'])
    writer.writerow(['10001', 'Mike', 20])
    writer.writerow(['10002', 'Bob', 22])
    writer.writerow(['10003', 'Jordan', 21])

?運行結束后稽鞭,會生成一個名為data.csv的文件,此時數(shù)據就成功寫入了引镊。直接以文本形式打開的話朦蕴,其內容如下


01.png

?可以看到,寫入的文本默認以逗號分隔弟头,調用一次writerow()方法即可寫入一行數(shù)據吩抓。用Excel打開的結果如下


02.png

?一般情況下,爬蟲爬取的都是結構化數(shù)據赴恨,我們一般會用字典來表示琴拧。在csv庫中也提供了字典的寫入方式,示例如下:

import csv
 
with open('data.csv', 'w') as csvfile:
    fieldnames = ['id', 'name', 'age']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerow({'id': '10001', 'name': 'Mike', 'age': 20})
    writer.writerow({'id': '10002', 'name': 'Bob', 'age': 22})
    writer.writerow({'id': '10003', 'name': 'Jordan', 'age': 21})

?這里先定義3個字段嘱支,用fieldnames表示蚓胸,然后將其傳給DictWriter來初始化一個字典寫入對象,接著可以調用writeheader()方法先寫入頭信息除师,然后再調用writerow()方法傳入相應字典即可沛膳。最終寫入的結果是完全相同的
另外,如果想追加寫入的話汛聚,可以修改文件的打開模式锹安,即將open()函數(shù)的第二個參數(shù)改成a,代碼如下:

import csv
 
with open('data.csv', 'a') as csvfile:
    fieldnames = ['id', 'name', 'age']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writerow({'id': '10004', 'name': 'Durant', 'age': 22})

這樣在上面的基礎上再執(zhí)行這段代碼倚舀,新行會添加成功,如下:


03.png

?如果要寫入中文內容的話叹哭,可能會遇到字符編碼的問題,此時需要給open()參數(shù)指定編碼格式痕貌。比如风罩,這里再寫入一行包含中文的數(shù)據,代碼需要改寫如下:

import csv
 
with open('data.csv', 'a', encoding='utf-8', newline='') as csvfile:
    fieldnames = ['id', 'name', 'age']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writerow({'id': '10005', 'name': '王偉', 'age': 22})

運行結果如下:


04.png

2.讀取

我們同使用csv庫來讀取CSV文件舵稠。例如超升,將剛才寫入的文件內容讀取出來,相關代碼如下

import csv

with open('data.csv','r', encoding='utf-8') as csvfile:
    # 調用csv模塊的reader函數(shù)讀文件
    lines = csv.reader(csvfile)
    for line in lines:
        print(line)

運行結果如下:


05.png

另外哺徊,如果接觸過pandas的話室琢,可以利用read_csv()方法將數(shù)據從CSV中讀取出來,例如

import pandas  as pd
 
df = pd.read_csv('data.csv')
print(df)

運行結果如下:


06.png

在做數(shù)據分析的時候落追,csv儲存方法用得比較多盈滴,也是一種比較方便地讀取CSV文件的方法。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末轿钠,一起剝皮案震驚了整個濱河市巢钓,隨后出現(xiàn)的幾起案子病苗,更是在濱河造成了極大的恐慌,老刑警劉巖竿报,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铅乡,死亡現(xiàn)場離奇詭異,居然都是意外死亡烈菌,警方通過查閱死者的電腦和手機阵幸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芽世,“玉大人挚赊,你說我怎么就攤上這事〖闷埃” “怎么了荠割?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長旺矾。 經常有香客問我蔑鹦,道長,這世上最難降的妖魔是什么箕宙? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任嚎朽,我火速辦了婚禮,結果婚禮上柬帕,老公的妹妹穿的比我還像新娘哟忍。我一直安慰自己,他們只是感情好陷寝,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布锅很。 她就那樣靜靜地躺著,像睡著了一般凤跑。 火紅的嫁衣襯著肌膚如雪爆安。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天饶火,我揣著相機與錄音鹏控,去河邊找鬼。 笑死肤寝,一個胖子當著我的面吹牛,可吹牛的內容都是我干的抖僵。 我是一名探鬼主播鲤看,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼耍群!你這毒婦竟也來了义桂?” 一聲冷哼從身側響起找筝,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎慷吊,沒想到半個月后袖裕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡溉瓶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年急鳄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片堰酿。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡疾宏,死狀恐怖,靈堂內的尸體忽然破棺而出触创,到底是詐尸還是另有隱情坎藐,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布哼绑,位于F島的核電站岩馍,受9級特大地震影響,放射性物質發(fā)生泄漏抖韩。R本人自食惡果不足惜蛀恩,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望帽蝶。 院中可真熱鬧赦肋,春花似錦、人聲如沸励稳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驹尼。三九已至趣避,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間新翎,已是汗流浹背程帕。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留地啰,地道東北人愁拭。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像亏吝,于是被迫代替她去往敵國和親岭埠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內容

  • 關于Mongodb的全面總結 MongoDB的內部構造《MongoDB The Definitive Guide》...
    中v中閱讀 31,938評論 2 89
  • 官網 中文版本 好的網站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,383評論 0 5
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)惜论,斷路器许赃,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • 亞馬遜老大Jeff Bezos在普林斯頓演講時所說: When you are eighty years old,...
    JackXuZhang閱讀 386評論 0 2
  • 談判一 實踐了方知道是怎么一回事。理論離開了實踐馆类,寫的再多再好也是沒用的混聊;實踐沒有理論做支撐,那將變得語無倫次乾巧,與...
    a956099d8e3a閱讀 88評論 0 0