【Python】學(xué)習(xí)筆記之文件和異常(上)|第10篇

書籍:《Python編程:從入門到實(shí)踐》
打卡人:Owenli
打卡時(shí)間:2018.4.18

Python從入門到實(shí)踐目錄

前言

本篇將學(xué)習(xí)處理文件痢士,讓程序能夠快速地分析大量的數(shù)據(jù)摘盆;還將學(xué)習(xí)錯(cuò)誤處理条辟,避免程序在面對(duì)意外情形時(shí)崩潰晤锹;將學(xué)習(xí)異常凤薛,它們是Python創(chuàng)建的特殊對(duì)象收厨,用于管理程序運(yùn)行時(shí)出現(xiàn)的錯(cuò)誤缴啡;還將學(xué)習(xí)模塊json羹呵,能夠保存用戶數(shù)據(jù)骂际,以免程序停止時(shí)丟失。

下面開始今天的學(xué)習(xí)吧8曰丁G嘎痢!

一凑耻、文件中讀取數(shù)據(jù)

要使用文本文件中的信息太示,首先需要將信息從文件中讀取到內(nèi)存中。下面看看如何讀取文件香浩。

1.1 讀取整個(gè)文件

首先創(chuàng)建一個(gè)文本文件pi_digits.txt类缤。文件中包含圓周率小數(shù)點(diǎn)后30位,每10位換行邻吭。

pi_digits.txt

3.1415926535
8979323846
2643383279

下面程序打開并讀取文件餐弱,將內(nèi)容顯示出來。

open():以某種方式打開文件囱晴,上面中傳遞一個(gè)參數(shù)膏蚓,文件地址,函數(shù)返回一個(gè)表示文件的對(duì)象畸写。

關(guān)鍵字with在不需要訪問文件后將其關(guān)閉驮瞧。也可以直接使用 close關(guān)閉文件,不過容易出問題枯芬,不推薦使用论笔。

read()方法采郎,讀取文件的全部?jī)?nèi)容。

在輸出是可以使用rstrip()刪除字符串末尾的空白狂魔。

1.2 文件路徑

open()函數(shù)根據(jù)當(dāng)前執(zhí)行文件所在目錄查找需要打開的文件尉剩。

有時(shí)需要打開不在程序文件所屬目錄中的文件。讓Python打開不與程序文件位于同一目錄中的文件毅臊,需要提供文件路徑理茎。讓 Python到指定位置查找。

相對(duì)路徑:該路徑是相對(duì)于當(dāng)前運(yùn)行的程序所在目錄的管嬉。

絕對(duì)路徑:該路徑是文件在計(jì)算機(jī)中的準(zhǔn)確存儲(chǔ)位置皂林。

1.3 逐行讀取

讀取文件時(shí),常常需要檢查其中的一行蚯撩,你可能要在文件中查找特定的信息础倍,或者要以某種方式修改文件中的文本。

下面例子胎挎,以一次一行的方式輸出文件內(nèi)容沟启。

1.4 創(chuàng)建一個(gè)包含文件各行內(nèi)容的列表

readlines()從文件中讀取每一行,并將其中存儲(chǔ)在一個(gè)列表中犹菇。

Python對(duì)處理的數(shù)據(jù)量沒有限制德迹,只要系統(tǒng)的內(nèi)存足夠多,處理多少數(shù)據(jù)都可以揭芍。

二胳搞、寫入文件

保存數(shù)據(jù)最方便的方式之一是寫入到文件中。

open()還提供了其他的參數(shù)称杨,控制文件讀取和寫入模式肌毅。

打開文件 時(shí),可指定讀取模式 ('r' )姑原、寫入模式 ('w' )悬而、附加模式 ('a' )或讓你能夠讀取和寫入文件的模式('r+' )。如果省略則會(huì)以默認(rèn)只讀模式打開文件锭汛。

如果要寫入的文件不存在笨奠,會(huì)自動(dòng)創(chuàng)建。

w模式店乐,在寫入時(shí)艰躺,會(huì)清空之前的內(nèi)容呻袭。

a模式眨八,追加模式寫入,不會(huì)清空之前的數(shù)據(jù)左电。

三廉侧、異常

Python中稱為異常的特殊對(duì)象來管理程序執(zhí)行期間發(fā)生的錯(cuò)誤页响。每當(dāng)發(fā)生讓Python不知所措的錯(cuò)誤時(shí),它都會(huì)創(chuàng)建一個(gè)異常對(duì)象段誊。如果你編寫了處理該異常的代碼闰蚕,程序?qū)⒗^
續(xù)運(yùn)行;如果你未對(duì)異常進(jìn)行處理连舍,程序?qū)⑼V姑欢福@示一個(gè)traceback,其中包含有關(guān)異常的報(bào)告索赏。

3.1 處理ZeroDivisionError異常

該異常是除數(shù)為零異常盼玄。當(dāng)除數(shù)為零是就會(huì)拋出這個(gè)錯(cuò)誤。


3.2 使用try-except代碼塊

通過編寫try-except代碼塊來處理可能引發(fā)的異常潜腻。try中執(zhí)行代碼埃儿,except中處理可能發(fā)生的異常。

3.3 else代碼塊

通過將可能引發(fā)錯(cuò)誤的代碼放在try-except代碼塊中融涣,提高了程序抵御錯(cuò)誤的能力童番。

try-except-else其中else代碼塊依賴于try代碼塊執(zhí)行的代碼都應(yīng)放在else代碼塊中。

try-except-else 代碼塊的工作原理大致如下:Python嘗試執(zhí)行try 代碼塊中的代碼;只有可能引發(fā)異常的代碼才需要放在try 語句中威鹿。有時(shí)候剃斧,有一些僅在try 代碼塊成功 執(zhí)行時(shí)才需要運(yùn)行的代碼;這些代碼應(yīng)放在else 代碼塊中。except 代碼塊告訴Python忽你,如果它嘗試運(yùn)行try代碼塊中的代碼時(shí)引發(fā)了指定的異常悯衬,該怎么辦。

四檀夹、小結(jié)

本篇主要學(xué)習(xí)文件讀和寫的相關(guān)知識(shí)筋粗,另外,還學(xué)習(xí)了關(guān)于異常的部分內(nèi)容炸渡。下篇將學(xué)習(xí)異常的剩余部分娜亿。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蚌堵,隨后出現(xiàn)的幾起案子买决,更是在濱河造成了極大的恐慌,老刑警劉巖吼畏,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件督赤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡泻蚊,警方通過查閱死者的電腦和手機(jī)躲舌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來性雄,“玉大人没卸,你說我怎么就攤上這事羹奉。” “怎么了约计?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵诀拭,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我煤蚌,道長(zhǎng)耕挨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任尉桩,我火速辦了婚禮俗孝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘魄健。我一直安慰自己赋铝,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布沽瘦。 她就那樣靜靜地躺著革骨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天旬陡,我揣著相機(jī)與錄音乓旗,去河邊找鬼舶替。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播巍实,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼哩牍!你這毒婦竟也來了棚潦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤膝昆,失蹤者是張志新(化名)和其女友劉穎丸边,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荚孵,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡妹窖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了收叶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片骄呼。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谒麦,到底是詐尸還是另有隱情俄讹,我是刑警寧澤哆致,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布绕德,位于F島的核電站,受9級(jí)特大地震影響摊阀,放射性物質(zhì)發(fā)生泄漏耻蛇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一胞此、第九天 我趴在偏房一處隱蔽的房頂上張望臣咖。 院中可真熱鬧,春花似錦漱牵、人聲如沸夺蛇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刁赦。三九已至,卻和暖如春闻镶,著一層夾襖步出監(jiān)牢的瞬間甚脉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工铆农, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留牺氨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓墩剖,卻偏偏與公主長(zhǎng)得像猴凹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子岭皂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

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

  • 第六章:數(shù)字 第七章:序列精堕,列表,元組 1.序列 序列類型有著相同的訪問模式:它的每一個(gè)元素可以通過指定一個(gè)偏移量...
    m風(fēng)滿樓閱讀 898評(píng)論 0 2
  • Python異常處理 異常概念: 異常:就是不正常的情況蒲障,程序開發(fā)過程中錯(cuò)誤和BUG都是補(bǔ)充正常的情況 異常發(fā)生的...
    youngkun閱讀 924評(píng)論 0 4
  • 一歹篓、初步認(rèn)識(shí)反射### 使用反射,能夠快速地應(yīng)用開發(fā)工具動(dòng)態(tài)地查詢新添加類的能力揉阎。能夠分析類能力的程序稱為反射庄撮。反...
    HCherisher閱讀 407評(píng)論 0 10
  • #本文參加‘青春’大賽,本人保證本文為本人原創(chuàng)毙籽,如有問題洞斯,則于主辦方無關(guān),自愿放棄評(píng)優(yōu)評(píng)獎(jiǎng)資格。 ...
    翊祤閱讀 351評(píng)論 3 27
  • 方說圍棋樂烙如,得趣能幾何么抗? 始尋天真在,終歸誰爛柯亚铁?
    鯢老閱讀 280評(píng)論 1 2