Python CSV文件模塊的使用案例分析
本文實(shí)例講述了Python CSV文件模塊的使用。分享給大家供大家參考,具體如下:
1、CSV模塊使用流程
1、導(dǎo)入模塊
impport CSV
2、打開文件(xxx.csv)
with open('xxx.csv','a',encoding='utf-8') as f:
- 1、a和 a+ ‘追加'功能
a 追加寫
a+ 追加寫讀(先寫后讀)
- 2、r 和 r+
r 只讀
r+讀寫,先讀后寫
- 3、w,w+
w 只寫
w+寫讀 先寫后讀
3、初始化寫入對(duì)象
writer = csv.wirter()
4、寫入數(shù)據(jù)
writer.writerow(['孫悟空', '蘭陵王'])
案例:
貓眼電影top10榜單的爬取
1、網(wǎng)址:url
2、目標(biāo):爬取自己想要的文件
3、保存本地:csv文件
4、步驟
- 1、找url規(guī)律
第一頁(yè):https://maoyan.com/board/4?offset=0
第4頁(yè):https://maoyan.com/board/4?offset=30
第n頁(yè):offset=(n-1)*10
- 2、寫正則表達(dá)式
'<div class="movie-item-info".*?title="(.*?)".*?class="star">(.* ?)</p>.*?class="releasetime">(.*?)</p>',re.S
練習(xí):爬取貓王top10信息
from urllib import request import re import time import csv class MaoyanSpider(object): def __init__(self): self.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"} self.page = 1 # 用來計(jì)數(shù) def get_page(self, url): req = request.Request(url, headers=self.headers) res = request.urlopen(req) html = res.read().decode('utf-8') # 直接調(diào)用解析函數(shù) self.parse_page(html) def parse_page(self,html): p=re.compile('<div class="movie-item-info">.*?title="(.*?)".*?class="star">(.*?)</p>.*?class="releasetime">(.*?)</p>',re.S) #p=re.compile('<div class="movie-item-info">.*?title="(.*?)".*?class="star">(.* ?)</p>.*?class="releasetime">(.*?)</p>',re.S) r_list = p.findall(html) # 直接調(diào)用保存函數(shù) # r_list:[('霸王別姬','張國(guó)榮','1993'),(),()] self.write_csv(r_list) # 保存數(shù)據(jù)函數(shù) def write_csv(self,r_list): with open('貓眼電影top10.csv','a') as f: writer = csv.writer(f) # 依次寫入每個(gè)電影信息 for r_t in r_list: film = [ r_t[0].strip(), r_t[1].strip(), r_t[2].strip() ] writer.writerow(film) #主函數(shù) def work_om(self): for pn in range(0,41,10): url = 'https://maoyan.com/board/4?offset=%s'%str(pn) self.get_page(url) print('第%d頁(yè)爬取成功'%self.page) self.page += 1 time.sleep(4) if __name__ =='__main__': begin = time.time() spider = MaoyanSpider() spider.work_om() end = time.time() print("執(zhí)行時(shí)間%.2f"%(end - begin))
運(yùn)行截圖:
更多Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python操作Excel表格技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
sklearn.metrics 中的f1-score簡(jiǎn)介
這篇文章主要介紹了sklearn.metrics 中的f1-score簡(jiǎn)介,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05python的即時(shí)標(biāo)記項(xiàng)目練習(xí)筆記
這篇文章主要介紹了python的即時(shí)標(biāo)記項(xiàng)目練習(xí)筆記,本文是閱讀《python基礎(chǔ)教程》一書的動(dòng)手實(shí)踐項(xiàng)目,需要的朋友可以參考下2014-09-09Python phone模塊獲取手機(jī)號(hào)歸屬地 區(qū)號(hào) 運(yùn)營(yíng)商等信息demo
這篇文章主要介紹了Python phone模塊獲取手機(jī)號(hào)歸屬地 區(qū)號(hào) 運(yùn)營(yíng)商等信息的實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05python3實(shí)現(xiàn)Dijkstra算法最短路徑的實(shí)現(xiàn)
這篇文章主要介紹了python3實(shí)現(xiàn)Dijkstra算法最短路徑的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05pytorch 改變tensor尺寸的實(shí)現(xiàn)
今天小編就為大家分享一篇pytorch 改變tensor尺寸的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01