1.程式在執行過程中可能產生的錯誤,比如使用了不存在的索引,不同型別的計算。
print(10
/0)#報錯
2.處理異常
程式執行出現異常,目的並不是讓程式終止,而且讓程式出現異常時,我們可以編寫**進行處理。
1.當在函式**現異常時,如果在函式中沒有對異常進行處理,則異常會在函式呼叫處傳播,直到傳遞到全域性作用域(主模組),如果還是沒有處理,則程式終止 ,報出異常資訊。
2.當程式出現異常時,所有異常會被儲存在乙個異常物件中,當異常傳播時,即把異常物件拋給呼叫處。
例如:
deffn(
):print(10
/0)print
('heloo fn'
)def
fn1():
print
('hello fn1'
) fn(
)def
fn2():
print
('hello fn2'
) fn1(
)fn2()
#程式報錯,錯誤在第乙個函式fn中,但被拋給了fn1,在被拋給fn2函式
在python中我們可以對異常進行編寫,格式如下:
try
: 可能會出現異常的語句,**塊
except exception as 賦值的名:
exception是所有異常類的父類,如果不知道異常型別,可以直接寫父類
**塊,出現錯誤的處理方式
except 異常型別 as 異常名:
**塊,出現錯誤的處理方式
except 異常型別 as 異常名:
**塊,出現錯誤的處理方式..
....
.else
:finally
: **塊,是否出錯該**都會執行
**提示:
try一定要有,
else有沒有都可以。
except和finally 至少要有乙個**
檔案(file)
通過python程式來對計算機的各種檔案進行增刪改查的操作,檔案也叫i/o,
(input/output)。
檔案的操作
開啟檔案:
file_name =
'abc.txt'
with
open
(file_name,encoding=
'utf-8'
)as file_obj:
r = file_obj.read(
)print
(r)#open()為開啟檔案
檔案會有乙個返回值,返回乙個物件,這個物件就表示的是當前檔案。
關閉檔案
1.呼叫close()方法來關閉檔案
2.使用with…as…語句,不用寫close()關閉檔案,因為它自帶關閉。
file_name =
'abc.txt'
file_obj =
open
(file_name,encoding=
'utf-8'
)r = file_obj.read(
)file_obj.close(
)#關閉檔案
r = file_obj.read(
)#讀取檔案
結果報錯:valueerror: i/o operation on closed file
.
1.通過read()來讀取檔案內容。
2.呼叫open()來開啟乙個檔案,可以將檔案分為2中型別
一種是純文字(由utf-8編碼編寫的檔案)
open()開啟檔案時,預設是以文字檔案的形式開啟的 open()預設的編碼為none。所以處理文字檔案時要指定編碼
1.通過read()讀取檔案內容時會將檔案中所有的內容全部讀取出來。如果對於讀取的檔案比較大的話。會一次性的將檔案載入到內容中。容易導致記憶體洩露。所以對於較大的檔案。不要直接呼叫read()。
2.read()可以接收乙個size作為的引數。該引數用來指定要讀取字元的數量。預設值為-1.-1也就是要讀取全部的內容。
3.每次讀取都會從上次讀取到的位置開始。如果字元的數量小於size。則會讀取所有的。如果讀取到最後的檔案。則會返回空串。
4.readline()該方法用來讀取一行。
5.readlines()該方法用於一行一行的讀取內容,它會一次性將讀取到的內容封裝到乙個列表當中返回。
file_name =
'abc.txt'
file_obj =
open
(file_name,encoding=
'utf-8'
)r = file_obj.read(10)
r = file_obj.readline(
)r = file_obj.readline(
)r = file_obj.readlines(
)print
(r)輸出結果:
床前明月光疑是地上霜
read(
10)每次讀10個字元
readline(
)每次讀取一行
readlines(
)一行一行讀取,以列表的形式列印。
write()來向檔案中寫入內容
該方法可以分多次向檔案寫入內容
寫入完成之後該方法會返回寫入的字元的個數
使用open()函式開啟檔案時,必須要指定開啟檔案要做的操作(讀、寫、追加)。如果不指定操作型別,則預設是讀取檔案,而讀取檔案是不能向檔案中寫入
r 表示唯讀
w表示可以寫。使用w寫入檔案時,如果檔案不存在則會建立乙個檔案。如果檔案存在則會覆蓋原檔案內容
file_name =
'abc.txt'
file_obj =
open
(file_name,mode=
'w',encoding=
'utf-8'
)r = file_obj.write(
'地上鞋兩雙'
)print
(r)輸出結果:5
#'a'為追加
1.讀取文字檔案時,size是以字元為單位。讀取二進位制檔案時,size是以位元組為單位。
2.我們用『wb』來寫入二進位制檔案。
file_name = r'c:\users\msi\desktop\heqiao.***'
#為需要開啟的**檔案
with
open
(file_name, mode=
'rb'
)as file_obj:
# file_obj.read()
new_count =
'bbb.***'
#新建乙個新的**檔案
with
open
(new_count, mode=
'wb'
)as new_obj:
#wb寫二進位制檔案
con =
1024
*100
#需要寫入檔案的大小,二進位制檔案按b來計算的
while
true
: r = file_obj.read(con)
#讀100b的檔案
ifnot r:
break
new_obj.write(r)
#把讀取到的二進位制檔案寫入新的***檔案中
Python異常和檔案
try語句 try 塊 可能出現錯誤的語句 except 異常型別 as 異常名 塊 出現錯誤以後的處理 式 except 異常型別 as 異常名 塊 出現錯誤以後的處理 式 except 異常型別 as 異常名 塊 出現錯誤以後的處理 式 else 塊 沒出錯時要執 的語句 finally 塊 是...
Python中異常和檔案
程式在執行過程當中,不可避免的會出現一些錯誤,這些錯誤在程式中,我們稱其為異常。程式執行過程中,一旦出現異常將會導致程式立即終止,異常以後的 全部都不會執行!程式執行時出現異常,目的並不是讓我們的程式直接終止!python是希望在出現異常時,我們可以編寫 來對異常進行處理!try語句 try 塊 可...
Python(四)異常處理和檔案讀寫
什麼是錯誤和異常?作為python初學者,在剛學習python程式設計時,經常會看到一些報錯資訊。python有兩種錯誤很容易辨認 語法錯誤和異常。即便python程式的語法是正確的,在執行它的時候,也有可能發生錯誤。執行期檢測到的錯誤被稱為異常。大多數的異常都不會被程式處理,都以錯誤資訊的形式展現...