1. 程式人生 > >python爬蟲系列(4.2-python操作csv檔案)

python爬蟲系列(4.2-python操作csv檔案)

一、關於csv檔案的介紹

CSV(Comma-Separated Values)即逗號分隔值,可以用Excel開啟檢視。由於是純文字,任何編輯器也都可開啟。與Excel檔案不同,CSV檔案中:

值沒有型別,所有值都是字串

不能指定字型顏色等樣式

不能指定單元格的寬高,不能合併單元格

沒有多個工作表

不能嵌入影象圖表

開啟方式:

直接用Excel開啟,看起來是表格

用記事本或者編輯器開啟就是一坨用<font color="#f00">,</font>分開的字元

二、關於使用python讀取csv檔案

1、導包(不需要安裝)

import csv

2、全部讀取出來

filename = 'test.csv'

with open(filename) as f:

    reader = csv.reader(f)

    # 列表的方式

    print(list(reader))

3、逐行讀取資料

import csv

with open('test.csv') as f:

    reader = csv.reader(f)

    # 讀取一行,下面的reader中已經沒有該行了

    header_row = next(reader)

    for row in reader:

        print(reader.line_num, row)

三、寫入檔案

1、單行寫入檔案

import csv

datas = [

    ['name', 'age'],

    ['張三', 20],

    ['李四', 30]

]

with open('test1.csv', 'w', newline='', encoding='utf8') as f:

    writer = csv.writer(f)

    for row in datas:

        writer.writerow(row)

2、結果顯示

name,age

張三,20

李四,30

3、多行寫入

import csv

datas = [

    ['name', 'age'],

    ['張三', 20],

    ['李四', 30],

    ['王五', 18]

]

with open('test2.csv', 'w', newline='', encoding='utf8') as f:

    writer = csv.writer(f)

    writer.writerows(datas)

四、使用DictReader和DictWriter物件來操作

使用DictReader可以像python中字典一樣的操作資料

1、使用DictReader讀取資料

import csv

with open('test.csv') as f:

    reader = csv.DictReader(f)

    # 先讀取標題

    next(reader)

    for row in reader:

        print(row['mobile'])

2、寫入檔案

import csv

headers = ['name', 'age']

datas = [

    {'name': '張三', 'age': 20},

    {'name': '李四', 'age': 30},

    {'name': '王五', 'age': 24}

]

with open('test3.csv', 'w', newline='', encoding='utf8') as f:

    writer = csv.DictWriter(f, headers)

    # 寫入頭部

    writer.writeheader()

    # 一次性全部寫入

    writer.writerows(datas)