2.csv文件的兩種讀取方式
2.1 reader讀取
import csv
with open("student.csv","r") as f:
# reader是壹個叠代器
reader = csv.reader(f)
titles = next(reader) # 跳過標題行
for x in reader:
name = x[0]
age = x[1]
print("姓名:%s" %name, "年齡:%s" %age)
輸出結果:姓名:王五 年齡:17
使用reader讀取的話,存在壹個問題,在獲取數據的時候,通過下標來獲取列,現在第壹列式name,如果我把第壹列修改為id列,那麽數據獲取將會出現問題,所以有了DictReader
2.2 DictReader讀取
如果想要獲取數據的時候通過標題來獲取,那麽可以使用DictReader。
age-python">import csv
with open("student.csv","r") as f:
# 使用DictReader創建的reader對象,不會包含標題那行數據,reader是壹個叠代器,遍歷這個叠代器,返回的是壹個字典
reader = csv.DictReader(f)
for x in reader:
value = {"姓名":x["name"],"年齡":x["age"]}
print(value)
輸出結果:
{'姓名': '王五', '年齡': '17'}
3.csv文件的兩種寫入方式
3.1 writer寫入
import csv
title = ["empno","ename","owner"]
value = [
]
with open("emp.csv", "w", encoding="utf-8", newline='') as f: # 默認的newline為\n
writer = csv.writer(f)
writer.writerow(title)
writer.writerows(value)
運行後結果:
Python3 爬蟲U22_csv文件處理
3.2 DictWriter寫入
import csv
title = ['empno','ename','owner']
value = [
{'empno':'A001','ename':'關羽','owner':'劉備'},
{'empno':'A002','ename':'張飛','owner':'劉備'},
{'empno':'A003','ename':'夏侯惇','owner':'曹操'},
{'empno':'A004','ename':'郭嘉','owner':'曹操'},
]
with open("emp.csv", "w", encoding="utf-8", newline='') as f: # 默認的newline為\n
writer = csv.DictWriter(f,title)
# 寫入表頭直接調用writeheader()方法即可
writer.writeheader()
writer.writerows(value)