(7)Python 異常處理,檔案的讀寫

2021-09-13 03:28:39 字數 3827 閱讀 6912

異常處理

print('異常出現前')

l =

try:

# print(c)

# l[10]

# 1 + 'hello'

print(10/0)

except nameerror:

# 如果except後不跟任何的內容,則此時它會捕獲到所有的異常

# 如果在except後跟著乙個異常的型別,那麼此時它只會捕獲該型別的異常

print('出現 nameerror 異常')

except zerodivisionerror:

print('出現 zerodivisionerror 異常')

except indexerror:

print('出現 indexerror 異常')

# exception 是所有異常類的父類,所以如果except後跟的是exception,他也會捕獲到所有的異常

# 可以在異常類後邊跟著乙個 as xx 此時xx就是異常物件

except exception as e :

print('未知異常',e,type(e))

finally :

print('無論是否出現異常,該子句都會執行')

print('異常出現後')

開啟檔案

# open(file, mode='r', buffering=-1, encoding_=none, errors=none, newline=none, closefd=true, opener=none)

# 使用open函式來開啟乙個檔案

# 引數:

# file 要開啟的檔案的名字(路徑)

# 返回值:

# 返回乙個物件,這個物件就代表了當前開啟的檔案

# 建立乙個變數,來儲存檔案的名字

# 如果目標檔案和當前檔案在同一級目錄下,則直接使用檔名即可

file_name = 'demo.txt'

# 在windows系統使用路徑時,可以使用/來代替 \

# 或者可以使用 \\ 來代替 \

# 或者也可以使用原始字串

file_name = 'hello\\demo.txt'

file_name = r'hello\demo.txt'

# 表示路徑,可以使用..來返回一級目錄

file_name = '../hello/demo.txt'

# 如果目標檔案距離當前檔案比較遠,此時可以使用絕對路徑

# 絕對路徑應該從磁碟的根目錄開始書寫

file_name = r'c:\users\lilichao\desktop\hello.txt'

# file_obj = open(file_name) # 開啟 file_name 對應的檔案

# print(file_obj)

關閉檔案

# 開啟檔案

file_name = 'demo.txt'

# 呼叫open()來開啟檔案

# file_obj = open(file_name)

# # 當我們獲取了檔案物件以後,所有的對檔案的操作都應該通過物件來進行

# # 讀取檔案中的內容

# # read()方法,用來讀取檔案中的內容,它會將內容全部儲存為乙個字串返回

# content = file_obj.read()

# print(content)

# # 關閉檔案

# # 呼叫close()方法來關閉檔案

# file_obj.close()

# with ... as 語句

# with open(file_name) as file_obj :

# # 在with語句中可以直接使用file_obj來做檔案操作

# # 此時這個檔案只能在with中使用,一旦with結束則檔案會自動close()

# print(file_obj.read())

file_name = 'hello'

try:

with open(file_name) as file_obj :

print(file_obj.read())

except filenotfounderror:

print(f' 檔案不存在~~')

關於讀取檔案的編寫問題 open(xx,encoding=『utf-8』)

多行讀取檔案內容

import pprint

import os

file_name = 'demo.txt'

with open(file_name , encoding='utf-8') as file_obj:

# readline()

# 該方法可以用來讀取一行內容

# print(file_obj.readline(),end='')

# print(file_obj.readline())

# print(file_obj.readline())

# readlines()

# 該方法用於一行一行的讀取內容,它會一次性將讀取到的內容封裝到乙個列表中返回

# r = file_obj.readlines()

# pprint.pprint(r[0])

# pprint.pprint(r[1])

# pprint.pprint(r[2])

for t in file_obj:

print(t)

寫入檔案

file_name = 'demo5.txt'

# 使用open()開啟檔案時必須要指定開啟檔案所要做的操作(讀、寫、追加)

# 如果不指定操作型別,則預設是 讀取檔案 , 而讀取檔案時是不能向檔案中寫入的

# r 表示唯讀的

# w 表示是可寫的,使用w來寫入檔案時,如果檔案不存在會建立檔案,如果檔案存在則會截斷檔案

# 截斷檔案指刪除原來檔案中的所有內容

# a 表示追加內容,如果檔案不存在會建立檔案,如果檔案存在則會向檔案中追加內容

# x 用來新建檔案,如果檔案不存在則建立,存在則報錯

# + 為操作符增加功能

# r+ 即可讀又可寫,檔案不存在會報錯

# w+

# a+

# with open(file_name , 'w' , encoding='utf-8') as file_obj:

# with open(file_name , 'r+' , encoding='utf-8') as file_obj:

with open(file_name , 'x' , encoding='utf-8') as file_obj:

# write()來向檔案中寫入內容,

# 如果操作的是乙個文字檔案的話,則write()需要傳遞乙個字串作為引數

# 該方法會可以分多次向檔案中寫入內容

# 寫入完成以後,該方法會返回寫入的字元的個數

file_obj.write('aaa\n')

file_obj.write('bbb\n')

file_obj.write('ccc\n')

r = file_obj.write(str(123)+'123123\n')

r = file_obj.write('今天天氣真不錯')

print(r)

7 python異常處理 異常基類學習

部分內容摘選自菜鳥教程 及 瘋狂python講義 李剛 異常機制已經成為判斷一門語言是否成熟的標準。python的異常處理機制主要依賴try except else finally和raise五個關鍵字,其中 try語句按照如下方式工作 首先,執行try子句 在關鍵字try和關鍵字except之間的...

7 python全棧之路 異常處理

處理異常 排錯的時候 真正報錯的是最下面 python的 是不會出錯的,應該從下向上找最後一行自己寫的 去處理 異常處理的應用 1.可以用 if規避,但是成本太高。2.不能用 if處理了 stopiteration if 是預防異常出現的 try是異常出現之後 異常處理的特點 一旦發生異常,程式就不...

python檔案引入 異常處理

匯入函式模組 1.庫檔案存在於lib下面,使用import lib 2.不存在,則需要一層層去匯入,使用from packagename.modulename import functionname if name main 執行程式主入口,function python 裡面的異常處理 try.e...