使用with open()新建對(duì)象
寫入數(shù)據(jù)(這里使用的是爬取豆瓣讀書中一本書的豆瓣短評(píng)作為例子)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import requests from lxml import etree #發(fā)送Request請(qǐng)求 url = 'https://book.douban.com/subject/1054917/comments/' head = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36' } #解析HTML r = requests.get(url, headers = head) s = etree.HTML(r.text) comments = s.xpath( '//div[@class="comment"]/p/text()' ) #print(str(comments))#在寫代碼的時(shí)候可以將讀取的內(nèi)容打印一下 #保存數(shù)據(jù)open函數(shù) with open ( 'D:/PythonWorkSpace/TestData/pinglun.txt' , 'w' ,encoding = 'utf-8' ) as f: #使用with open()新建對(duì)象f for i in comments: print (i) f.write(i + '\n' ) #寫入數(shù)據(jù),文件保存在上面指定的目錄,加\n為了換行更方便閱讀 |
這里指的注意的是: open函數(shù)的打開模式
參數(shù) | 用法 |
---|---|
r | read只讀。若不存在文件會(huì)報(bào)錯(cuò)。 |
w | write只寫。若不存在文件會(huì)自動(dòng)新建。 |
a | apend附加到文件末尾。 |
rb, wb, ab | 操作二進(jìn)制 |
r+ | 讀寫模式打開 |
說(shuō)道Pandas不得不說(shuō)一下與之相關(guān)的兩個(gè)數(shù)據(jù)分析工具包(注意:pandas 、numpy和matplotlib都需要事先安裝,詳細(xì)安裝可見之前的博文關(guān)于pip方式安裝包)
numpy: (Numerical Python的簡(jiǎn)稱),是高性能科學(xué)計(jì)算和數(shù)據(jù)分析的基礎(chǔ)包
pandas:基于Numpy創(chuàng)建的Python包,含有使數(shù)據(jù)分析工作變得更加簡(jiǎn)單的高級(jí)數(shù)據(jù)結(jié)構(gòu)和操作工具
matplotlib:是一個(gè)用于創(chuàng)建出版質(zhì)量圖表的繪圖包(主要是2D方面)
1 2 3 | import pandas as pd #導(dǎo)入pandas import numpy as np #導(dǎo)入numpy import matplotlib.pypolt as plt #導(dǎo)入matplotlib |
接下來(lái)就演示pandas保存數(shù)據(jù)到CSV和Excel
1 2 3 4 5 6 7 8 9 10 | #導(dǎo)入包import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn( 10 , 4 )) #創(chuàng)建隨機(jī)值 #print(df.head(2))#查看數(shù)據(jù)框的頭部數(shù)據(jù),默認(rèn)不寫為前5行,小于5行時(shí)全部顯示;也可以自定義查看幾行 print (df.tail()) ##查看數(shù)據(jù)框的尾部數(shù)據(jù),默認(rèn)不寫為倒數(shù)5行,小于5行時(shí)全部顯示;也可以自定義查看倒數(shù)幾行 df.to_csv( 'D:/PythonWorkSpace/TestData/PandasNumpy.csv' ) #存儲(chǔ)到CSV中 #df.to_excel('D:/PythonWorkSpace/TestData/PandasNumpy.xlsx')#存儲(chǔ)到Excel中(需要提前導(dǎo)入庫(kù) pip install openpyxl) |
實(shí)例中保存豆瓣讀書的短評(píng)代碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import requests from lxml import etree #發(fā)送Request請(qǐng)求 url = 'https://book.douban.com/subject/1054917/comments/' head = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36' } #解析HTML r = requests.get(url, headers = head) s = etree.HTML(r.text) comments = s.xpath( '//div[@class="comment"]/p/text()' ) #print(str(comments))#在寫代碼的時(shí)候可以將讀取的內(nèi)容打印一下 ''' #保存數(shù)據(jù)open函數(shù) with open('D:/PythonWorkSpace/TestData/pinglun.txt','w',encoding='utf-8') as f:#使用with open()新建對(duì)象f for i in comments: print(i) f.write(i+'\n')#寫入數(shù)據(jù),文件保存在上面指定的目錄,加\n為了換行更方便閱讀 ''' #保存數(shù)據(jù)pandas函數(shù) 到CSV 和Excel import pandas as pd df = pd.DataFrame(comments) #print(df.head())#head()默認(rèn)為前5行 df.to_csv( 'D:/PythonWorkSpace/TestData/PandasNumpyCSV.csv' ) #df.to_excel('D:/PythonWorkSpace/TestData/PandasNumpyEx.xlsx') |
聯(lián)系客服