書籍:《Python編程:從入門到實(shí)踐》
打卡人:Owenli
打卡時(shí)間:2018.4.18
Python從入門到實(shí)踐目錄
- Python學(xué)習(xí)筆記之基本數(shù)據(jù)類型|第1篇
- Python學(xué)習(xí)筆記之列表|第2篇
- Python學(xué)習(xí)筆記之條件控制|第3篇
- Python學(xué)習(xí)筆記之字典|第4篇
- Python學(xué)習(xí)筆記之用戶輸入和While循環(huán)|第5篇
- Python學(xué)習(xí)筆記之函數(shù)|第6篇
- Python學(xué)習(xí)筆記之函數(shù)(續(xù))|第7篇
- Python學(xué)習(xí)筆記之類|第8篇
- Python學(xué)習(xí)筆記之類(續(xù))|第9篇
- Python學(xué)習(xí)筆記之文件和異常(上)|第10篇
- Python學(xué)習(xí)筆記之文件和異常(下)|第11篇
前言
本篇將學(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í)異常的剩余部分娜亿。