第十章 文件和異常
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模塊能夠讓你將簡單的數據結構轉儲到文件中,並在程序再次運行時加載該文件中的數據。
寫入信息
讀取信息
重構:將代碼劃分為一系列完成具體工作的函數
好處:讓代碼更清晰、更易於理解、更容易拓展
第十章 文件和異常