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

書(shū)籍:《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í)丟失。

下面開(kāi)始今天的學(xué)習(xí)吧?。。?/p>

一、文件中讀取數(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

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

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

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

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

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

1.2 文件路徑

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

有時(shí)需要打開(kāi)不在程序文件所屬目錄中的文件。讓Python打開(kāi)不與程序文件位于同一目錄中的文件,需要提供文件路徑。讓 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ù)量沒(méi)有限制,只要系統(tǒng)的內(nèi)存足夠多,處理多少數(shù)據(jù)都可以。

二、寫(xiě)入文件

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

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

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

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

w模式,在寫(xiě)入時(shí),會(huì)清空之前的內(nèi)容。

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

三、異常

Python中稱為異常的特殊對(duì)象來(lái)管理程序執(zhí)行期間發(fā)生的錯(cuò)誤。每當(dāng)發(fā)生讓Python不知所措的錯(cuò)誤時(shí),它都會(huì)創(chuàng)建一個(gè)異常對(duì)象。如果你編寫(xiě)了處理該異常的代碼,程序?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代碼塊

通過(guò)編寫(xiě)try-except代碼塊來(lái)處理可能引發(fā)的異常。try中執(zhí)行代碼,except中處理可能發(fā)生的異常。

3.3 else代碼塊

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

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

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

四、小結(jié)

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容