爬蟲學習之csv讀取和存儲


一、讀取

該讀取主要使用到csv里面的Reader()、DictReader()方法,和引用io里面的StringIO進行對字符串進行封裝

在處理網上的csv文件方式主要是有一下幾方面:

• 手動把CSV 文件下載到本機,然后用Python 定位文件位置;
• 寫Python 程序下載文件,讀取之后再把源文件刪除;
• 從網上直接把文件讀成一個字符串,然后轉換成一個StringIO 對象,使它具有文件的
屬性。

最優處理方案:

雖然前兩個方法也可以用,但是既然你可以輕易地把CSV 文件保存在內存里,就不要
再下載到本地占硬盤空間了。直接把文件讀成字符串,然后封裝成StringIO 對象,讓
Python 把它當作文件來處理,就不需要先保存成文件了。
 1 from urllib.request import urlopen
 2 from bs4 import BeautifulSoup
 3 from io import StringIO
 4 import csv
 5 
 6 data = urlopen("http://pythonscraping.com/files/MontyPythonAlbums.csv").read().decode('ascii','ignore')
 7 dataFile = StringIO(data)
 8 csvReader = csv.reader(dataFile)
 9 
10 for row in csvReader:
11     print(row)

通過引用StringIO進行字符串封裝,然后進行讀取該對象里面的內容,這樣就不用在通過下載到本地,再進行讀取本地文件操作

 進一步優化,通過把字符串轉換成字典模式

 1 from urllib.request import urlopen
 2 from bs4 import BeautifulSoup
 3 from io import StringIO
 4 import csv
 5 
 6 data = urlopen("http://pythonscraping.com/files/MontyPythonAlbums.csv").read().decode('ascii','ignore')
 7 dataFile = StringIO(data)
 8 dictReader = csv.DictReader(dataFile)
 9 
10 for row in dictReader:
11     print(row)

通過csv內部的DictReader方法進行把字符串進行轉換成字典,然后進行操作

二、存儲

通過open函數進行打開已存在的csv文件,並指定編碼格式,和讀寫操作方式,再通過csv內置的write方法寫入到該文件

1 csvFile = open("./files/editors.csv", 'wt', newline='',encoding='utf-8')
2 writer = csv.writer(csvFile)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM