《從python開始學(xué)編程》第5章

目錄

1.讀寫文件
2.時(shí)間設(shè)置
3.正則表達(dá)式
4.計(jì)算機(jī)通信
5.爬蟲


1.讀寫文件

python可以把數(shù)據(jù)儲(chǔ)存在文件中救氯,通過f = open(文件名, 方式)來打開文件對(duì)象讀取數(shù)據(jù)扇商。打開文件的常用方式有“r”:讀取已存在的文件,“w”:新建文件并寫入哑蔫,“a”:如果文件存在,那么寫入到文件的結(jié)尾手素。如果文件不存在鸳址,則新建文件并寫入。打開文件后就可以通過函數(shù)讀取或者寫入文件了泉懦,有關(guān)函數(shù)如下

打開文件端口將占用計(jì)算機(jī)資源稿黍,在讀寫完成后,應(yīng)該及時(shí)的用文件對(duì)象的close方法關(guān)閉文件

上下文管理器(context manager)用于規(guī)定某個(gè)對(duì)象的使用范圍崩哩。一旦進(jìn)入或者離開該使用范圍巡球,則會(huì)有特殊操作被調(diào)用,如在不需要文件的時(shí)候自動(dòng)關(guān)閉文件邓嘹。

結(jié)果True酣栈,文件關(guān)閉

上面講到文本可以通過寫入到文件而保存到電腦磁盤中,python中的對(duì)象同樣可以這樣做汹押,不過需要利用pickle包矿筝。通過pickle包儲(chǔ)存對(duì)象分兩步走,第一是序列化對(duì)象(dumps函數(shù))棚贾,即將對(duì)象在內(nèi)存中的數(shù)據(jù)抓取出來轉(zhuǎn)換成一個(gè)有序文本窖维,第二是將文本寫入文件儲(chǔ)存,代碼如下

對(duì)象summer將保存在summer.pkl中

對(duì)象保存在文件中后妙痹,當(dāng)需要用到它時(shí)就可以通過pickle包的load()函數(shù)來將文本轉(zhuǎn)換成對(duì)象了铸史。

2.時(shí)間設(shè)置

python的time包可以幫助我們進(jìn)行各種時(shí)間的管理,如


time包還定義了struct_time對(duì)象怯伊。該對(duì)象將掛鐘時(shí)間轉(zhuǎn)換為年琳轿、月、日、時(shí)崭篡、分挪哄、秒等,存儲(chǔ)在該對(duì)象的各個(gè)屬性中媚送,比如tm_year中燥、tm_mon、tm_mday……下面幾種方法可以將掛鐘時(shí)間轉(zhuǎn)換為struct_time對(duì)象:

python的datetime包是基于time包的一個(gè)高級(jí)包塘偎,datetime模塊下有兩個(gè)類:datetime.date類和datetime.time類疗涉,可以分別管理日期和時(shí)間。也可以直接用datetime.datetime類同時(shí)管理日期和時(shí)間吟秩。方法如下

時(shí)間的參數(shù)還有seconds咱扣、weeks、milliseconds涵防、microseconds

利用datetime包的timedelta函數(shù)還可以進(jìn)行時(shí)間間隔的運(yùn)算

此外闹伪,還可以對(duì)時(shí)間長短進(jìn)行比較,返回True 或者False

datatime包中的strptime函數(shù)可以將字符串中的時(shí)間信息轉(zhuǎn)換成datetime類的對(duì)象壮池,比如

相反偏瓤,可以同strftime函數(shù)將datetime對(duì)象轉(zhuǎn)換為特定格式的字符串,

可以看到椰憋,使得轉(zhuǎn)換一一對(duì)應(yīng)的關(guān)鍵就是%引領(lǐng)的符號(hào)厅克,除了上面的符號(hào)外還有

3.正則表達(dá)式

正則表達(dá)式(Regular Expression)的主要功能是從字符串(string)中通過特定的模式,搜索希望找到的內(nèi)容橙依,需要通過re包來實(shí)現(xiàn)证舟,先看一段代碼

打印出的是“4”

re.search()有兩個(gè)參數(shù),第一個(gè)參數(shù)是給出了搜索范圍0-9窗骑,第二個(gè)參數(shù)是表示給出的字符串中有哪些字符串在搜索范圍內(nèi)出現(xiàn)的女责,如果有就賦值給m。m.group()表示查看搜索到的結(jié)果创译,沒有結(jié)果會(huì)返回None抵知。

除了re.search()外,re.match()也可以進(jìn)行搜索软族,不同的是后者必須是字符串的第一個(gè)字符開始就相符才能正常進(jìn)行辛藻,否則返回None。

搜素到的字符串可以用sub()函數(shù)進(jìn)行替換互订,形如str = re.sub(pattern, replacement, string),replacement就是替換用的的字符串痘拆。常用的方法還有


關(guān)于正則表達(dá)式仰禽,常用的語法有下面這些

代表單個(gè)字符的符號(hào)


代表重復(fù)的符號(hào)

舉個(gè)例子,第一個(gè),[0-9]{3,5}表示出現(xiàn)在[0-9]內(nèi)的字符重復(fù)(連續(xù))出現(xiàn)了3-5次吐葵,正例“9678”(4次)规揪,反例“12”(2次)、“1234567”(7次)温峭。第二個(gè)猛铅,a?b表示ab中的a可以出現(xiàn)可以不出現(xiàn)凤藏,正例“b”(不出現(xiàn))奸忽、“ab”(出現(xiàn)),反例“cb”(并不是ab形式)揖庄。第三個(gè)栗菜,a+b表示a可以重復(fù)1次或以上,正例“aaaaab”(a重復(fù)了5次再跟b)蹄梢,反例“b”(不是ab形式疙筹,沒有a了)。

還有一些與位置相關(guān)的符號(hào)

例子禁炒,^ab.*c$表示a開始c結(jié)尾而咆、b緊跟a、b后任意字符重復(fù)任意次

正則表達(dá)式的群幕袱,上面已經(jīng)提到過可以用group(0)來查看提取的字符串暴备,其實(shí)這就表示查看所有的提取結(jié)果。如果我們把提取到的結(jié)果分成幾個(gè)部分凹蜂,就成了幾個(gè)群蚜点,以用于進(jìn)一步提取字符串,如

用()圍著的部分表示進(jìn)一步篩選的群

群還可以被命名


4.計(jì)算機(jī)通信

計(jì)算機(jī)之間的通信有一套多層次的協(xié)議體系鸥诽,HTTP(the Hypertext Transfer Protocol)就是最常見的一種毫胜,即超文本傳輸協(xié)議。HTTP協(xié)議能實(shí)現(xiàn)文件擂煞,特別是超文本文件的傳輸混弥。HTTP的工作步驟分為兩步:請(qǐng)求(request)、回復(fù)(response)对省。計(jì)算機(jī)發(fā)出請(qǐng)求時(shí)會(huì)遵照下面格式

·GET:用于說明想要服務(wù)器執(zhí)行的操作蝗拿。
·/index.html: 資源的路徑,這里指向服務(wù)器上的index.html文件蒿涎。
·HTTP/1.1協(xié)議的版本哀托,HTTP第一個(gè)廣泛使用的版本是1.0,當(dāng)前版本為1.1劳秋。
·Host: www.example.com:Host后面是要訪問的服務(wù)器地址仓手。

服務(wù)器在接收到請(qǐng)求之后胖齐,會(huì)根據(jù)程序,生成對(duì)應(yīng)于該請(qǐng)求的回復(fù)嗽冒,比如:

·HTTP/1.1:協(xié)議版本
·200:狀態(tài)碼(status code)
·OK:狀態(tài)描述(其它描述有302:重新定向呀伙。404:無法找到)
·Content-type: text/plain:主體所包含的資源類型為普通文本(其它類型有text/html:HTML文? ? 本、image/jpeg:jpeg圖片添坊、image/gif:gif圖片
·Content-length:12:主體本分的長度為12字節(jié)
·Hello World!:回復(fù)的主體部分


Python標(biāo)準(zhǔn)庫中的http.client包可用于發(fā)出HTTP請(qǐng)求剿另,


5.爬蟲

網(wǎng)絡(luò)爬蟲應(yīng)用很廣,它可以自動(dòng)瀏覽網(wǎng)頁贬蛙,從網(wǎng)頁上抓取我們想要的信息雨女。許多研究互聯(lián)網(wǎng)行為的學(xué)者也會(huì)用爬蟲抓取網(wǎng)絡(luò)信息,用來進(jìn)一步分析人們使用互聯(lián)網(wǎng)的行為速客。我們現(xiàn)在可以利用前面所學(xué)的知識(shí)做一個(gè)簡單的程序戚篙,實(shí)現(xiàn)提取博客最近文章的發(fā)表日期和閱讀量。

第一步:訪問博客首頁溺职,作者的博客地址是www.cnblogs.com/vamei岔擂,主機(jī)是www.cnblogs.com,資源位置是/vamei浪耘。這個(gè)頁面是一個(gè)超文本文件乱灵,所以我們用 HTTPS協(xié)議訪問:

content是一個(gè)含有回復(fù)內(nèi)容的列表

第二步:通過正則表達(dá)式提取有用信息(日期、時(shí)間和閱讀量):

結(jié)果為:

完成七冲!



代碼見碼云:zun: happy - 碼云 Gitee.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末痛倚,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子澜躺,更是在濱河造成了極大的恐慌蝉稳,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掘鄙,死亡現(xiàn)場離奇詭異耘戚,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)操漠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門收津,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人浊伙,你說我怎么就攤上這事撞秋。” “怎么了嚣鄙?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵吻贿,是天一觀的道長。 經(jīng)常有香客問我哑子,道長舅列,這世上最難降的妖魔是什么奉芦? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮剧蹂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘烦却。我一直安慰自己宠叼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布其爵。 她就那樣靜靜地躺著冒冬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪摩渺。 梳的紋絲不亂的頭發(fā)上简烤,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音摇幻,去河邊找鬼横侦。 笑死,一個(gè)胖子當(dāng)著我的面吹牛绰姻,可吹牛的內(nèi)容都是我干的枉侧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼狂芋,長吁一口氣:“原來是場噩夢啊……” “哼榨馁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起帜矾,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤翼虫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后屡萤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體珍剑,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年灭衷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了次慢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡翔曲,死狀恐怖迫像,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情瞳遍,我是刑警寧澤闻妓,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站掠械,受9級(jí)特大地震影響由缆,放射性物質(zhì)發(fā)生泄漏注祖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一均唉、第九天 我趴在偏房一處隱蔽的房頂上張望是晨。 院中可真熱鬧,春花似錦舔箭、人聲如沸罩缴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽箫章。三九已至,卻和暖如春镜会,著一層夾襖步出監(jiān)牢的瞬間檬寂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來泰國打工戳表, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留桶至,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓扒袖,卻偏偏與公主長得像塞茅,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子季率,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容