140
本周目標
熟悉Python的基礎語法與資料結構
任務
- 學習函數的定義和使用(Parameters、Return Values)
- 練習設計和使用函數,並完成更多字串處理練習(例如文字查找和替換)
- 學習file open, write, read指令
- 學習json指令
- 練習從公開網站讀取資料並寫入文件
- 建立實體物件與實體屬性
- 建立實體方法與應用
專案練習
先建立兩個文字檔案.txt,使用實體方法抓取文字資料
data1.txtx
4點半起床了
data2.txt
大家早上好
定義file類別
使用__init__方法8存入實體屬性名稱name
初始值為None
class file:
def __init__(self,name):
self.name=name
self.file=None
定義實體方法open開啟檔案self.name
class file:
def __init__(self,name):
self.name=name
self.file=None
def open(self):
self.file=open(self.name, mode="r" ,encoding="utf-8")
定義實體方法read讀取檔案self.name文字並回傳值
class file:
def __init__(self,name):
self.name=name
self.file=None
def open(self):
self.file=open(self.name, mode="r" ,encoding="utf-8")
def read(self):
return self.file.read()
應用在data1和data2文字檔
class file:
def __init__(self,name):
self.name=name
self.file=None
def open(self):
self.file=open(self.name, mode="r" ,encoding="utf-8")
def read(self):
return self.file.read()
f1=file("1116data1.txt")
f1.open()
result=f1.read()
print(result)
f2=file("1116data2.txt")
f2.open()
result=f2.read()
print(result)
Output
4點半起床了
大家早上好
Review
沒有檢查檔案是否存在
沒有關閉檔案,建議加上close方法
重複開始檔案
以下chatgpt示範
class File:
def __init__(self, name):
self.name = name
self.file = None
def open(self):
try:
self.file = open(self.name, mode="r", encoding="utf-8")
except FileNotFoundError:
print(f"檔案 {self.name} 不存在")
def read(self):
if self.file:
return self.file.read()
else:
print("檔案尚未開啟")
return ""
def close(self):
if self.file:
self.file.close()
print(f"檔案 {self.name} 已關閉")
# 使用範例
f1 = File("1116data1.txt")
f1.open()
result = f1.read()
print(result)
f1.close()
f2 = File("1116data2.txt")
f2.open()
result = f2.read()
print(result)
f2.close()