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...