1. 程式人生 > >第十章 文件和異常

第十章 文件和異常

工作 系列 ima 替換 技術 3.2 消失 分享圖片 字符

10.1從文件中讀取數據

1、讀取整個文件

技術分享圖片

a)關鍵字with在不再需要訪問文件後將其關閉。

b)在這個程序中,調用了open函數,而沒有調用close函數,來關閉文件是為了防止文件異常關閉導致數據丟失或受損,過早關閉有可能造成在後期使用文件時造成錯誤,python會在合適的時間自動將其關閉;

c)read()到達文件末尾時會返回一個空字符串,而這個空字符串顯示出來就是一個空行,可使用方法rstrip()去掉;

2、按文件路徑打開文件

技術分享圖片

【註】python將‘\’當成轉義字符,windows下必須在前面加上r,否則報錯;也可以將‘\’替換為‘\\’或‘/’就不會報錯了;

3、逐行讀取:for循環實現

技術分享圖片

技術分享圖片

print語句會在打印的時候自動添加一個換行符,可使用rstrip()去掉空行

4、創建一個包含文件各行內容的列表

方法readlines()從文件讀取每一行,並將其儲存在一個列表裏;

5、使用文件的內容

技術分享圖片

如果文件比較大,可使用切片法輸出特定數據;

10.2寫入文件

1、寫入空文件

技術分享圖片

【註】用open函數打開文件,下面直接調用w是沒有權限的,必須在加上‘w+’或‘r+’;這種方式會直接覆蓋文件;

附加到文件用‘a’

【附】

r 打開只讀文件,該文件必須存在。

r+ 打開可讀寫的文件,該文件必須存在。

w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。

w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。

a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。

a+ 以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。

10.3異常

python使用被稱為異常的特殊對象來管理程序執行期間發生的錯誤。每當發生讓python不知所措的錯誤時,它都會創建一個異常對象。

異常是使用try-except代碼塊處理的,使用了此代碼塊,即使出現了異常,程序也將繼續執行;

10.3.2使用try-except代碼塊

將有可能發生錯誤的代碼放到try代碼塊裏,如果try代碼塊裏的運行起來沒有問題,python將跳過except代碼塊,如果發生了錯誤,python將查找這樣的except代碼塊,並運行其中的代碼;

技術分享圖片

在範例中,try代碼塊中的代碼引發了ZeroDivisionError異常,因此python指出了該如何解決問題的except代碼塊,並運行其中的代碼。

後面也可添加else代碼塊,當try代碼塊成功執行後將執行else代碼塊。

【附】方法 split() 通過指定分隔符對字符串進行切片,如果參數 num 有指定值,則分隔 num+1 個子字符串

pass語句可讓程序出現錯誤時“一聲不吭”

10.4存儲數據

json模塊能夠讓你將簡單的數據結構轉儲到文件中,並在程序再次運行時加載該文件中的數據。

寫入信息

技術分享圖片

讀取信息

技術分享圖片

重構:將代碼劃分為一系列完成具體工作的函數

好處:讓代碼更清晰、更易於理解、更容易拓展

第十章 文件和異常