網頁

2025年7月28日 星期一

Python 文字檔的新增資料

 一、主題介紹:

上一篇 Python 文章針對文字檔 (.txt) 的查詢資料功能有做詳細的介紹,有興趣的人可以到上篇文章觀看,接下來今天要來介紹如何新增資料到文字檔 (.txt) 內。我們依然延續上次的物件導向 (OO, Object Oriented) 程式設計,在類別裡新增方法來建立儲存文字檔 (.txt) 資料,在建立應用程式之前,先來講講一些指令的用法。


(1) with ~ as ~

這是一個上下文管理器的語法,時常用來管理資源的開啟與關閉,如:檔案、網路連線、資料庫連線..等的開啟與關閉,使用此指令可以使程式碼更加簡潔,省去了結束程式的關閉動作,也不會因為忘了寫關閉動作而造成程式執行的異常,所以它的功能是自動管理資源釋放記憶體空間,就算是發生錯誤也能正確自動地關閉資源。


(2) open ( file, mode, encoding )

在 Python 程式裡,若要將資料寫入檔案或從檔案中讀取資料,就必須經過此開啟檔案物件的函式,在 open 裡的第一個參數 file 是要設定檔案的路徑及名稱,第二個參數 mode 是設定檔案存取的模式 (如: 讀、寫..),第三個參數是設定存取檔案資料的編碼格式 (如: utf-8 ),其最主要的目的是防止產生中文亂碼。



二、程式範例:

(1) 文字檔內容

序 編號 公司 聯絡人 行動電話 備註

1 B001 加佳 張三 0900-123456

2 E150 億元 胡二 0900-111111

3 C455 成功 王八 0921-168168

4 D050 旺旺 鄭一 0900-888888

5 D050 旺旺 鄭一 0900-888888

6 E150 億元 胡二 0900-111111

7 E150 億元 胡二 0900-111111


(2) 程式內容

class TxtAccess:

    def __init__(self,file):   #初始化
        self.__file = file

    def search(self):   #查詢
        with open(self.__file,"r",encoding="utf-8") as fobj:
            datas = fobj.read()
        return datas
   
    def newadd(self,datas):   #新增
        with open(self.__file,"a",encoding="utf-8") as fobj:
            fobj.write("\n")
            for i in range(0,len(datas),1):
                fobj.write(str(datas[i]))

    def show(self,data):   #顯示
        print(data)



file = "data.txt"
datas = ['9','E150','億元','胡二','0900-111111']
A = TxtAccess(file)
#新增
A.newadd(datas)
sr = A.search()
A.show(sr)


#執行結果 ..

序 編號 公司 聯絡人 行動電話 備註

1 B001 加佳 張三 0900-123456

2 E150 億元 胡二 0900-111111

3 C455 成功 王八 0921-168168

4 D050 旺旺 鄭一 0900-888888

5 D050 旺旺 鄭一 0900-888888

6 E150 億元 胡二 0900-111111

7 E150 億元 胡二 0900-111111

9,E150,億元,胡二,0900-111111


三、程式說明:

在此程式範例中將上篇文章中的程式,新增了類別方法裡的第三個函式 newadd(),用來新增資料到文字檔,所以透過此程式範例不僅學習如何建立物件導向程式,還可以學習如何對檔案的存取,真的一舉兩得,有興趣的朋友不要忘記訂閱,下篇文章 "文字檔的修改資料" 上架時會通知您。


沒有留言:

張貼留言

TQC+ Python 證照考題評量(五十四) - 平均溫度

 一、主題介紹: 資料庫中的一堆數據資料,時常需要這些資料的平均值、最大值、與最小值,作為分析資料的依據,如能透過寫程式讓它們自動化就能增加效率,就來看看今天的 TQC+ 考題的練習。 (1) 題目 請撰寫一程式,讓使用者輸入四週各三天的溫度,接著計算並輸出這四週的平均溫度及最高...