python爬蟲系列(4.2-python操作csv檔案)
一、關於csv檔案的介紹
CSV(Comma-Separated Values)即逗號分隔值,可以用Excel開啟檢視。由於是純文字,任何編輯器也都可開啟。與Excel檔案不同,CSV檔案中:
值沒有型別,所有值都是字串
不能指定字型顏色等樣式
不能指定單元格的寬高,不能合併單元格
沒有多個工作表
不能嵌入影象圖表
開啟方式:
直接用Excel開啟,看起來是表格
用記事本或者編輯器開啟就是一坨用<font color="#f00">,</font>分開的字元
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)