99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

Python3爬蟲中CSV文件存儲(chǔ)的方法

Python3爬蟲中CSV文件存儲(chǔ)的方法?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、網(wǎng)頁空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、華寧網(wǎng)站維護(hù)、網(wǎng)站推廣。

CSV,全稱為Comma-Separated Values,中文可以叫作逗號(hào)分隔值或字符分隔值,其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)。該文件是一個(gè)字符序列,可以由任意數(shù)目的記錄組成,記錄間以某種換行符分隔。每條記錄由字段組成,字段間的分隔符是其他字符或字符串,最常見的是逗號(hào)或制表符。不過所有記錄都有完全相同的字段序列,相當(dāng)于一個(gè)結(jié)構(gòu)化表的純文本形式。它比Excel文件更加簡(jiǎn)介,XLS文本是電子表格,它包含了文本、數(shù)值、公式和格式等內(nèi)容,而CSV中不包含這些內(nèi)容,就是特定字符分隔的純文本,結(jié)構(gòu)簡(jiǎn)單清晰。所以,有時(shí)候用CSV來保存數(shù)據(jù)是比較方便的。本節(jié)中,我們來講解Python讀取和寫入CSV文件的過程。

1. 寫入

這里先看一個(gè)最簡(jiǎn)單的例子:

import csv
with open('data.csv', 'w') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(['id', 'name', 'age'])
    writer.writerow(['10001', 'Mike', 20])
    writer.writerow(['10002', 'Bob', 22])
    writer.writerow(['10003', 'Jordan', 21])

首先,打開data.csv文件,然后指定打開的模式為w(即寫入),獲得文件句柄,隨后調(diào)用csv庫的writer()方法初始化寫入對(duì)象,傳入該句柄,然后調(diào)用writerow()方法傳入每行的數(shù)據(jù)即可完成寫入。

運(yùn)行結(jié)束后,會(huì)生成一個(gè)名為data.csv的文件,此時(shí)數(shù)據(jù)就成功寫入了。直接以文本形式打開的話,其內(nèi)容如下:

id,name,age
10001,Mike,20
10002,Bob,22
10003,Jordan,21

可以看到,寫入的文本默認(rèn)以逗號(hào)分隔,調(diào)用一次writerow()方法即可寫入一行數(shù)據(jù)。用Excel打開的結(jié)果如圖5-6所示。

Python3爬蟲中CSV文件存儲(chǔ)的方法

如果想修改列與列之間的分隔符,可以傳入delimiter參數(shù),其代碼如下:

import csv
with open('data.csv', 'w') as csvfile:
    writer = csv.writer(csvfile, delimiter=' ')
    writer.writerow(['id', 'name', 'age'])
    writer.writerow(['10001', 'Mike', 20])
    writer.writerow(['10002', 'Bob', 22])
    writer.writerow(['10003', 'Jordan', 21])

這里在初始化寫入對(duì)象時(shí)傳入delimiter為空格,此時(shí)輸出結(jié)果的每一列就是以空格分隔了,內(nèi)容如下:

id name age
10001 Mike 20
10002 Bob 22
10003 Jordan 21

另外,我們也可以調(diào)用writerows()方法同時(shí)寫入多行,此時(shí)參數(shù)就需要為二維列表,例如:

import csv
with open('data.csv', 'w') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(['id', 'name', 'age'])
    writer.writerows([['10001', 'Mike', 20], ['10002', 'Bob', 22], ['10003', 'Jordan', 21]])

輸出效果是相同的,內(nèi)容如下:

id,name,age
10001,Mike,20
10002,Bob,22
10003,Jordan,21

但是一般情況下,爬蟲爬取的都是結(jié)構(gòu)化數(shù)據(jù),我們一般會(huì)用字典來表示。在csv庫中也提供了字典的寫入方式,示例如下:

import csv
with open('data.csv', 'w') as csvfile:
    fieldnames = ['id', 'name', 'age']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerow({'id': '10001', 'name': 'Mike', 'age': 20})
    writer.writerow({'id': '10002', 'name': 'Bob', 'age': 22})
    writer.writerow({'id': '10003', 'name': 'Jordan', 'age': 21})

這里先定義3個(gè)字段,用fieldnames表示,然后將其傳給DictWriter來初始化一個(gè)字典寫入對(duì)象,接著可以調(diào)用writeheader()方法先寫入頭信息,然后再調(diào)用writerow()方法傳入相應(yīng)字典即可。最終寫入的結(jié)果是完全相同的,內(nèi)容如下:

id,name,age
10001,Mike,20
10002,Bob,22
10003,Jordan,21

這樣就可以完成字典到CSV文件的寫入了。

另外,如果想追加寫入的話,可以修改文件的打開模式,即將open()函數(shù)的第二個(gè)參數(shù)改成a,代碼如下:

import csv
with open('data.csv', 'a') as csvfile:
    fieldnames = ['id', 'name', 'age']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writerow({'id': '10004', 'name': 'Durant', 'age': 22})

這樣在上面的基礎(chǔ)上再執(zhí)行這段代碼,文件內(nèi)容便會(huì)變成:

id,name,age
10001,Mike,20
10002,Bob,22
10003,Jordan,21
10004,Durant,22

可見,數(shù)據(jù)被追加寫入到文件中。

如果要寫入中文內(nèi)容的話,可能會(huì)遇到字符編碼的問題,此時(shí)需要給open()參數(shù)指定編碼格式。比如,這里再寫入一行包含中文的數(shù)據(jù),代碼需要改寫如下:

import csv
with open('data.csv', 'a', encoding='utf-8') as csvfile:
    fieldnames = ['id', 'name', 'age']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writerow({'id': '10005', 'name': '王偉', 'age': 22})

這里需要給open()函數(shù)指定編碼,否則可能發(fā)生編碼錯(cuò)誤。

另外,如果接觸過pandas等庫的話,可以調(diào)用DataFrame對(duì)象的to_csv()方法來將數(shù)據(jù)寫入CSV文件中。

2. 讀取

我們同樣可以使用csv庫來讀取CSV文件。例如,將剛才寫入的文件內(nèi)容讀取出來,相關(guān)代碼如下:

import csv
with open('data.csv', 'r', encoding='utf-8') as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        print(row)

運(yùn)行結(jié)果如下:

['id', 'name', 'age']
['10001', 'Mike', '20']
['10002', 'Bob', '22']
['10003', 'Jordan', '21']
['10004', 'Durant', '22']
['10005', '王偉', '22']

這里我們構(gòu)造的是Reader對(duì)象,通過遍歷輸出了每行的內(nèi)容,每一行都是一個(gè)列表形式。注意,如果CSV文件中包含中文的話,還需要指定文件編碼。

另外,如果接觸過pandas的話,可以利用read_csv()方法將數(shù)據(jù)從CSV中讀取出來,例如:

import pandas  as pd
df = pd.read_csv('data.csv')
print(df)

運(yùn)行結(jié)果如下:

    id   name  age
0  10001  Mike   20
1  10002  Bob   22
2  10003  Jordan 21
3  10004  Durant 22
4  10005  王偉   22

在做數(shù)據(jù)分析的時(shí)候,此種方法用得比較多,也是一種比較方便地讀取CSV文件的方法。

感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)Python3爬蟲中CSV文件存儲(chǔ)的方法大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站題目:Python3爬蟲中CSV文件存儲(chǔ)的方法
網(wǎng)頁路徑:http://www.yijiale78.com/article32/pehppc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)ChatGPT服務(wù)器托管品牌網(wǎng)站制作電子商務(wù)標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司