[接口測(cè)試 - 基礎(chǔ)篇] 09 其實(shí)吧,讀寫csv格式也是要掌握的

什么是csv格式

逗號(hào)分隔值(Comma-Separated Values记罚,CSV墅诡,有時(shí)也稱為字符分隔值,因?yàn)榉指糇址部梢圆皇嵌禾?hào))毫胜,其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本)书斜。

CSV文件由任意數(shù)目的記錄組成,記錄間以某種換行符分隔酵使;

每條記錄由字段組成荐吉,字段間的分隔符是其它字符或字符串,最常見的是逗號(hào)或制表符口渔。

所有記錄都有完全相同的字段序列样屠,通常都是純文本文件。

建議用nodepad++缺脉、sublime等編輯器進(jìn)行編輯痪欲。

csv格式規(guī)則

  1. 開頭是不留空,以行為單位攻礼。
  2. 可含或不含列名业踢,含列名則居文件第一行。
  3. 一行數(shù)據(jù)不跨行礁扮,無空行知举。
  4. 以半角逗號(hào)(即,)作分隔符,列為空也要表達(dá)其存在太伊。
  5. 列內(nèi)容如存在半角引號(hào)(即")雇锡,替換成半角雙引號(hào)("")轉(zhuǎn)義,即用半角引號(hào)(即"")將該字段值包含起來僚焦。
  6. 文件讀寫時(shí)引號(hào)锰提,逗號(hào)操作規(guī)則互逆。
  7. 內(nèi)碼格式不限芳悲,可為 ASCII立肘、Unicode 或者其他。
  8. 不支持特殊字符

Python csv模塊

csv模式是python內(nèi)置的標(biāo)準(zhǔn)模塊芭概,用于讀寫csv格式的文件赛不。

在csv模塊中提供了reader、writer來讀寫csv格式的文件罢洲,下面我們一起看下這個(gè)兩個(gè)函數(shù)使用示例踢故。

示例功能:

  1. 先使用writer函數(shù)寫一個(gè)csv文件
  2. 使用reader函數(shù)讀取上述步驟寫的csv文件內(nèi)容,并在console中輸出
#-*- coding:utf-8 -*-

__author__ = "苦葉子"


import csv

if __name__ == "__main__":
    print("python csv文件寫讀操作示例")

    # 寫csv文件
    print("寫入一些簡(jiǎn)單數(shù)據(jù)到csv_data.csv文件中")
    with open('csv_data.csv', 'w', newline='') as csvfile:
        spamwriter = csv.writer(csvfile,  # csvfile為打開要寫的文件對(duì)象
            delimiter=',' # 分隔符
            )
        spamwriter.writerow(['csv_demo'] * 5 + ['DeepTest'])
        spamwriter.writerow(['hello', 'Study Python3', 'Auto Testing'])

        csvfile.close()

    print("讀取csv_data.csv問內(nèi)容")
    with open('csv_data.csv', 'r') as f:
        reader = csv.reader(f, delimiter=',')
        for row in reader:
            print("row的類型: ", type(row))
            print(row)

            # 遍歷每行中每個(gè)數(shù)據(jù)項(xiàng)
            for data in row:
                print(data, "  ")
        
        f.close()

在Python csv模塊中還提供了另外一種方式來讀寫csv文件惹苗,就是通過字典方式來讀寫殿较,其提供的主要方法為:DictReader、DictWriter桩蓉,下面我們一起一個(gè)基本的示例淋纲,大家可以根據(jù)這個(gè)示例與上面的示例進(jìn)行對(duì)比,看看有什么不同院究。

#-*- coding:utf-8 -*-

__author__ = "苦葉子"


import csv

if __name__ == "__main__":
    print("python csv文件字典寫讀操作示例")

    # 寫csv文件
    print("寫入一些簡(jiǎn)單數(shù)據(jù)到csv_dict_data.csv文件中")
    with open('csv_dict_data.csv', 'w') as csvfile:
        # 寫csv頭
        fieldnames = ['first_name', 'last_name']
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
        writer.writeheader()

        # 寫csv內(nèi)容
        writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
        writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
        writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})

    print("讀取csv_dict_data.csv問內(nèi)容")
    with open('csv_dict_data.csv') as csvfile:
        reader = csv.DictReader(csvfile)
        for row in reader:
            # 遍歷每行中的數(shù)據(jù)
            print(row['first_name'], row['last_name'])

小結(jié)

本文介紹了csv讀寫的兩種方式洽瞬,大家可以仔細(xì)比對(duì)二者的區(qū)別本涕,掌握其應(yīng)用場(chǎng)景。

掃一掃關(guān)注微信公眾號(hào):

公眾號(hào).jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末伙窃,一起剝皮案震驚了整個(gè)濱河市菩颖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌为障,老刑警劉巖晦闰,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異鳍怨,居然都是意外死亡呻右,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門鞋喇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來声滥,“玉大人,你說我怎么就攤上這事确徙⌒汛” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵鄙皇,是天一觀的道長(zhǎng)芜赌。 經(jīng)常有香客問我,道長(zhǎng)伴逸,這世上最難降的妖魔是什么缠沈? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮错蝴,結(jié)果婚禮上洲愤,老公的妹妹穿的比我還像新娘。我一直安慰自己顷锰,他們只是感情好柬赐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著官紫,像睡著了一般肛宋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上束世,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天酝陈,我揣著相機(jī)與錄音,去河邊找鬼毁涉。 笑死沉帮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播穆壕,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼待牵,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了喇勋?” 一聲冷哼從身側(cè)響起洲敢,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎茄蚯,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體睦优,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡渗常,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了汗盘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片皱碘。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖隐孽,靈堂內(nèi)的尸體忽然破棺而出癌椿,到底是詐尸還是另有隱情,我是刑警寧澤菱阵,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布踢俄,位于F島的核電站,受9級(jí)特大地震影響晴及,放射性物質(zhì)發(fā)生泄漏都办。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一虑稼、第九天 我趴在偏房一處隱蔽的房頂上張望琳钉。 院中可真熱鬧,春花似錦蛛倦、人聲如沸歌懒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽及皂。三九已至,卻和暖如春茸塞,著一層夾襖步出監(jiān)牢的瞬間躲庄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工钾虐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留噪窘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像倔监,于是被迫代替她去往敵國(guó)和親直砂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容