爬蟲:CSV文件存儲

Amae 2022-01-08 06:39:06 阅读数:698

csv 文件

CSV,全稱為 Comma-Separated Values ,中文可以叫作逗號分隔值或字符分隔值,其文件以純文 本形式存儲錶格數據。該文件是一個字符序列,可以由任意數目的記錄組成,記錄間以某種換行符分隔,每條記錄由字段組成,字段間的分隔符是其他字符或字符串,最常見的是逗號或制錶符, 不過所有記錄都有完全相同的字段序列 ,相當於一個結構化錶的純文本形式, 它比 Excel 文件更加簡介, XLS 文本是電子錶格,它包含了文本、數值、公式和格式等內容,而 CSV 中不包含這些 容,就是特定字符分割的純文本,結構簡單清晰,所以,有時候用CSV來保存數據是比較方便的

目錄

1、寫入

2、讀取


1、寫入

import csv
with open("data.csv","w") as fd:
writer = csv.writer(fd)
writer.writerow(['id','name','age'])
writer.writerow(['1001','Kike','20'])
writer.writerow(['1002','Bod','29'])
writer.writerow(['1003','Jon','16'])

調用csv庫的writer() 方法初始化寫入對象,傳入句柄,然後調用writerow() 方法傳入每行的數據即可完成寫入,默認是以,都好分割

 

修改列於列的分隔符,可以傳入delimiter參數

用空白來分割字符鍵的間距

import csv
with open("data.csv","w") as fd:
writer = csv.writer(fd,delimiter=" ")
writer.writerow(['id','name','age'])
writer.writerow(['1001','Kike',20])
writer.writerow(['1002','Bod',29])
writer.writerow(['1003','Jon',16])

結果 

 寫入多行writerows()  方法同時寫入多行

參數就需要要求二維列錶

import csv
with open("data.csv","w") as fd:
writer = csv.writer(fd)
writer.writerow(['id','name','age'])
writer.writerows([['1001','Kike',20],['1002','Bod',29],['1003','Jon',16]])

結果:

 字典方式寫入CSV文件

import csv
with open("data.csv","w") as fd:
fieldnames=['id','name','age']
writer = csv.DictWriter(fd,fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'id':1001,'name':'Kike','age':20})
writer.writerow({'id':1002,'name':'Bod','age':18})
writer.writerow({'id':1003,'name':'Jon','age':16})

DictWriter來初始化一個字典寫入對象,接著調用writeheader()  方法先寫入頭信息,然後在調用writerow()  方法傳入相應的字典

結果:

2、讀取

import csv
with open("data.csv") as fd:
reader = csv.reader(fd)
for fow in reader:
print(fow)
結果:
['id', 'name', 'age']
['1001', 'Kike', '20']
['1002', 'Bod', '18']
['1003', 'Jon', '16']
['1003', '香茗', '16']

 構造reader對象,遍曆讀取每行的內容

使用pandas讀取CSV文件

import pandas as pd
df = pd.read_csv("data.csv")
print(df)
結果:
id name age
0 1001 Kike 20
1 1002 Bod 18
2 1003 Jon 16
3 1003 香茗 16

版权声明:本文为[Amae]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201080639062282.html