python讀取網路上的csv文

__LeeKuanYew發表於2016-06-21

宣告:文章是本文的讀書筆記,有些是直接書上摘錄下來的。

python的標準庫csv庫主要是面向本地檔案,就是說你的CSV檔案得儲存在你的電腦上。當進行網路資料採集的時候,很多檔案都是線上的。不過有一些辦法可以解決這個問題:

1,手動把CSV檔案下載到本機,然後用Python定位檔案位置;

2,寫Python程式下載檔案,讀取之後再把原始檔刪除;

3,從網上直接把檔案讀成一個字串,然後轉換成一個StringIO物件,使它具有檔案的屬性。

雖然前兩個方法也可以用,但是既然你可以輕易地把CSV檔案儲存在記憶體裡,就不要再下載到本地佔硬碟空間了。直接把檔案讀成字串,然後封裝成StringIO物件,讓Python把它當做檔案來處理,就不需要先儲存檔案了。下面的程式就是從網上獲取一個CSV檔案,然後把每一行都列印到命令列裡:

from io import StringIO
import csv

data = urlopen('http://pythonscraping.com/files/MontyPythonAlbums.csv').read().decode('ascii', 'ignore')
dataFile = StringIO(data)
csvReader = csv.reader(dataFile)
for row in csvReader:
    print row


相關文章