Python之異常和檔案詳解

2021-10-06 05:25:03 字數 3844 閱讀 4108

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程式的語法是正確的,在執行它的時候,也有可能發生錯誤。執行期檢測到的錯誤被稱為異常。大多數的異常都不會被程式處理,都以錯誤資訊的形式展現...