10 異常與檔案

2021-10-06 06:25:23 字數 4050 閱讀 8488

1. 異常基本知識

2. 檔案基本操作

1. 異常基本知識

1.1 異常簡介

try

: **塊(可能出現錯誤的語句)

except 異常型別 as 異常名:(except塊可存在多個)

**塊(處理錯誤的語句)

else

: **塊(未出錯時要處理的語句)

finally

: 必須執行部分(無論異常與否,finally都會執行)

1.2 異常的傳播
# 定義除法函式

defdiv

(a, b)

:return a/b

# 定義乙個主功能函式fun

deffun

(n):

res =

0for i in

range

(n):

res += div(

1, i)

return res

if __name__ ==

'__main__'

:print

(fun(10)

)'''

這裡的**會出現zerodivisionerror: division by zero(除以0的錯誤)

由於主模組呼叫fun函式,fun函式呼叫div(1, 0)時會出現異常,然後div中未查找到對異常處理,

於是向上查詢fun,也未找到,最後到__main__中,也為發現對異常的處理,於是程式終止,並依次顯示異常資訊

如下:traceback (most recent call last):

file "c:/users/administrator/pycharmprojects/new_demo/exception.py", line 13, in print(fun(10))

file "c:/users/administrator/pycharmprojects/new_demo/exception.py", line 9, in fun

res += div(1, i)

file "c:/users/administrator/pycharmprojects/new_demo/exception.py", line 3, in div

return a/b

zerodivisionerror: division by zero

'''

# 定義除法函式

defdiv

(a, b)

:return a/b

# 定義乙個主功能函式fun

deffun

(n):

res =

0for i in

range

(n):

try:

res += div(

1, i)

except exception as e:

# exception為所有異常父類,可捕獲所有異常

print

(e)# division by zero

return res

if __name__ ==

'__main__'

:print

(fun(10)

)# 2.8289682539682537

2. 檔案基本操作

檔案常用方法:

方法名作用open(name, model, buffering)

預設以純文字形式開啟檔案,也可指定為二進位制檔案

close()

關閉檔案

read(n)

預設讀取整個檔案內容,也可指定長度

readline(limit)

以字串形式返回一行,也可指定長度

readlines(limit)

以列表形式返回多行,也可指定長度

write(s)

以字串形式寫入檔案,檔案不存在會自動建立

writelines(lines)

以乙個序列的形式寫入檔案

tell()

返回當前檔案指標的位置,即讀寫檔案內容的位置

seek(offset, whence)

whence預設為0,表示從檔案開頭偏移offset個位元組,whence還可取1和2,表示從當前位置與末尾位置偏移

with…as

一般以with open() as 的形式開啟檔案,不需要自己close() 取值

含義r或rt

預設模式,以文字模式讀取內容

rb以二進位制方式讀取檔案

w或wt

文字寫模式,開啟檔案前會被清空

wb以二進位制方式寫入檔案,檔案同樣被清空

a在檔案中進行文字追加

a+可讀寫模式,只能在檔案末尾寫

w+可讀寫模式,檔案會提前被清空

r+可讀寫模式,寫的位置任意

import io

# 以讀的形式開啟test.txt,此時會建立乙個test.txt

f = io.

open

('test.txt'

,'w'

, encoding=

'utf-8'

)# 寫入一段字串,返回值為寫入串的長度

res = f.write(

'life is short, i love python!'

)# 關閉檔案

f.close(

)# 以讀的形式開啟檔案,編碼為utf-8

f = io.

open

('test.txt'

,'r'

, encoding=

'utf-8'

)# 指定讀取長度為10的字串

print

(f.read(13)

)# life is short

# 預設讀取整個檔案內容

print

(f.read())

# , i love python!

# 關閉檔案

f.close(

)## 使用with...as

# with open('test.txt', 'r', encoding='utf-8') as f:

# print(f.readline()) # life is short, i love python!

# test.txt內容 hello world!

with

open

('test.txt'

,'rb+'

)as f:

f.seek(5,

1)# 從當前位置偏移5個位元組

print

(f.tell())

# 5print

(f.readline())

# b' world!\r\n'

print

(f.tell())

# 14

test_dict =

}print

(test_dict)

# }print

(type

(test_dict))#

# dumps() 將資料轉換成字串

json_str = json.dumps(test_dict)

print

(json_str)

# }print

(type

(json_str))#

# loads() 將字串轉換成dict

json_ctx = json.loads(json_str)

with

open

('test.json'

,'w+'

)as f:

json.dump(json_ctx, f)

# 寫入

# 讀取json檔案

with

open

('test.json'

,'r'

)as f:

print

(json.load(f)

)# }

檔案與異常

從檔案中讀取資料 with open pi digits.txt as file object contents file object.read print contents 關鍵字with 在不再需要訪問檔案後將其關閉 要刪除多出來的空行,可在print 語句中使用rstrip print co...

python 檔案與異常

檔案 r 只能讀 不能寫 讀取檔案不存在,是會報錯 r 可以執行讀寫操作 檔案不存在,報錯 w 只能寫,不能讀 會清空檔案內容 檔案不存在,會新建檔案 w rw 檔案不存在,不報錯 會清空檔案內容 a 只能寫 不會清空問檔案內容 檔案不存在,會新建檔案 a 檔案不存在,不報錯 不會清空檔案內容 檔案...

python檔案與異常 Python檔案與異常處理

檔案讀寫 使用python的bif build in function open 進行檔案讀寫操作 1.開啟檔案 data open file name,w 讀取模式有很多種,主要有 w 寫入 r 唯讀 a 在尾部新增,w 可讀可寫,不存在新建,r 可讀可寫,不存在報錯 a 可讀可寫,不存在建立 2...