python環境管理器使用(程式介紹),檔案讀取和寫入
阿新 • • 發佈:2019-01-03
#本程式示意自定義的類作為環境管理器使用
class FileWrite:
def __init__(self,filename):
self.filename = filename
def writeline(self,s):
"""此方法用於向檔案內寫入字串,同時自動新增換行"""
self.file.write(s)
self.file.write('\n')
def __enter__(self):
"""此方法用於實現環境管理器"""
self.file = open(self.filename,"w")
return self #返回值向用於with中的as繫結
def __exit__(self,exec_type,exec_value,exec_tb):
"""exec_type 為異常類值,沒有異常發生時為None
exec_value為錯誤的物件,沒有異常時為None
exec_tb為錯誤的traceback物件"""
self.fiel.close()
print("檔案",self.filename,"已關閉")
if exec_type is None:
print("退出with時沒有發生異常")
else:
print("退出時,有異常,型別是",exec_type,"錯誤是",exec_value)
print("__exit__法被呼叫,已離開with語句")
try:
with FileWrite("log.txt") as fw:#建立物件文件
while True:
s= input("請輸入第一行:")
if s =='exit':
break
if s == 'error':
raise ValueError("故意造成的值錯誤")
fw.writeline(s)
except:
print("有錯誤發生,已經轉為正常")
print("這是with語句之外,也是最後一條語句")