一、讀取
該讀取主要使用到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)