[Python教學] 初級:檔案操作

更新於 發佈於 閱讀時間約 7 分鐘

Python 是一個功能強大的程式語言,提供了非常直觀的檔案處理方式。無論是處理數據檔案、讀取日誌文件,還是生成報表,檔案讀寫操作都是程式開發中的重要環節。這篇文章將帶你深入了解如何使用 Python 操作檔案,包括讀取和寫入、檔案模式選擇以及上下文管理器的使用。

1. 基本檔案讀取與寫入

在 Python 中,我們可以使用內建的 open() 函數來操作檔案。這個函數會返回一個文件物件,該物件可以進行讀取和寫入等操作。檔案操作的基本流程如下:

  1. 開啟檔案
  2. 進行讀取或寫入操作
  3. 關閉檔案

1.1 檔案讀取操作

通常有三種常見的讀取方法:

  • read():一次讀取整個檔案內容。
  • readline():逐行讀取檔案,每次只讀取一行。
  • readlines():一次讀取整個檔案,並將每一行作為一個字串儲存在列表中。

以下是各種方法的範例:

# 假設有一個名為 "example.txt" 的文件
file = open("example.txt", "r") # 開啟檔案,模式為讀取("r"
content = file.read() # 一次讀取整個文件內容
print(content)
file.close() # 關閉檔案

使用 readline()

file = open("example.txt", "r")
line = file.readline() # 讀取文件中的第一行
print(line)
file.close()

使用 readlines()

file = open("example.txt", "r")
lines = file.readlines() # 將所有行讀入列表
for line in lines:
print(line)
file.close()

1.2 檔案寫入操作

寫入檔案的模式包括「寫入模式 (write)」和「追加模式 (append)」。使用 write() 方法可以將字串寫入文件。

file = open("example.txt", "w")  # 開啟檔案,模式為寫入("w"
file.write("Hello, World!\n")
file.write("這是一段文字。\n")
file.close()
  • w 模式:如果檔案存在,則會清空原有內容;如果檔案不存在,則會新建檔案。
  • a 模式:在文件末尾追加內容,而不會覆蓋原內容。

2. 檔案模式選擇

open() 函數的第二個參數定義了文件的「開啟模式」:

模式描述

r

讀取模式。若文件不存在,則會引發錯誤。

w

寫入模式。會清空文件內容或新建文件。

a

追加模式。在文件末尾寫入而不清空原內容。

r+

讀寫模式。允許讀取和寫入,文件必須存在。

w+

讀寫模式。先清空文件內容,若文件不存在則新建。

a+

追加讀寫模式。若文件不存在則新建,追加內容。

例如,以下範例展示了使用 r+ 模式同時讀取和寫入檔案:

file = open("example.txt", "r+")
print(file.read()) # 讀取文件內容
file.write("\n追加內容") # 寫入新內容
file.close()

3. 上下文管理 (with 語法)

使用 with 語句來開啟檔案可以確保在操作完成後自動關閉文件,這樣我們就不需要手動調用 close()。這種方法稱為「上下文管理器」,非常方便且可以避免文件未正確關閉的問題。

以下是一個使用 with 語法進行檔案操作的範例:

with open("example.txt", "r") as file:
content = file.read()
print(content)
# 文件在 with 語句結束時自動關閉

這個範例中,文件會在 with 區塊執行完成後自動關閉,無需我們手動調用 close() 函數。

3.1 結合上下文管理進行寫入

上下文管理器也適用於寫入操作。以下範例演示了如何使用 with 語句在文件末尾追加內容:

with open("example.txt", "a") as file:
file.write("\n這是追加的內容。")
# 文件已自動關閉

4. 範例:完整的檔案操作流程

下面是一個結合檔案讀取和寫入操作的完整範例,展示如何讀取檔案、追加新內容,並使用上下文管理器確保文件正確關閉。

假設我們有一個 example.txt 文件,內容如下:

初始內容。
這是文件的第一行。
這是文件的第二行。

我們的程式會:

  1. 讀取並顯示文件內容。
  2. 追加一行新的內容。
  3. 再次讀取並顯示更新後的內容。
# 讀取並顯示初始內容
with open("example.txt", "r") as file:
print("初始內容:")
print(file.read())

# 追加新內容
with open("example.txt", "a") as file:
file.write("\n這是追加的新行。")

# 再次讀取並顯示更新後的內容
with open("example.txt", "r") as file:
print("\n更新後的內容:")
print(file.read())

運行結果如下:

初始內容:
初始內容。
這是文件的第一行。
這是文件的第二行。

更新後的內容:
初始內容。
這是文件的第一行。
這是文件的第二行。
這是追加的新行。

這個範例展示了如何使用上下文管理器來進行安全的檔案操作,確保文件在所有操作完成後被正確關閉。

小結

Python 提供了強大的檔案處理功能,透過 open() 函數的多種模式選項,開發者可以靈活選擇讀寫方式。同時,使用 with 語句作為上下文管理器可以自動管理文件的開關,簡化代碼結構,避免文件未正確關閉的風險。熟練掌握檔案的讀取、寫入、模式選擇以及上下文管理器的使用,可以讓你的程式更加穩健、高效。

留言
avatar-img
留言分享你的想法!
avatar-img
追極光的北極熊|軟體工程師的小天地
9會員
162內容數
歡迎來到我的部落格!這裡記錄了軟體工程師的日常生活點滴,並分享程式設計與演算法的實用教學。無論你是初學者還是有經驗的開發者,都能在這裡找到深入淺出的技術解析與實戰技巧。此外,我也會分享工作中的心路歷程與學習心得,讓你不僅學到技術,更能瞭解軟體開發的實際應用與挑戰。希望透過這個平台,能與你共同成長,激發對技術的熱情!
2025/04/28
當我們開發程式時,功能能正常運作固然重要,但在資料量變大或執行時間變長時,效能就成為不可忽視的一環。尤其在 Web 應用、資料分析或科學運算中,程式跑得快與否,直接影響使用者體驗與系統成本。
2025/04/28
當我們開發程式時,功能能正常運作固然重要,但在資料量變大或執行時間變長時,效能就成為不可忽視的一環。尤其在 Web 應用、資料分析或科學運算中,程式跑得快與否,直接影響使用者體驗與系統成本。
2025/04/22
嘿,大家好!上篇教學文章我們做出了一個待辦事項清單,已經有點小工具的感覺了吧?今天我們要再升級,來做個「簡單記事本」。這個專案不只可以寫東西,還能存檔、讀檔,甚至換字體大小,感覺就像自己寫了個迷你軟體!
2025/04/22
嘿,大家好!上篇教學文章我們做出了一個待辦事項清單,已經有點小工具的感覺了吧?今天我們要再升級,來做個「簡單記事本」。這個專案不只可以寫東西,還能存檔、讀檔,甚至換字體大小,感覺就像自己寫了個迷你軟體!
2025/04/16
嘿,大家好!走到這一步,我們已經玩過 Tkinter 的基本招式、佈局、事件處理,還搞了些進階元件,應該有點信心了吧?今天我們要把這些功夫練成一套連招,來做個實用的「待辦事項清單」(To-Do List),順便聊聊怎麼把程式寫得更漂亮、更好用。準備好了嗎?這就上場啦!
2025/04/16
嘿,大家好!走到這一步,我們已經玩過 Tkinter 的基本招式、佈局、事件處理,還搞了些進階元件,應該有點信心了吧?今天我們要把這些功夫練成一套連招,來做個實用的「待辦事項清單」(To-Do List),順便聊聊怎麼把程式寫得更漂亮、更好用。準備好了嗎?這就上場啦!
看更多
你可能也想看
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
專案產生大量又瑣碎的作業做處理,眼下要從iReport的設定檔(jrxml)擷取每一項套印參數出來,提供給別人做Excel公式的資料表進行作業。
Thumbnail
專案產生大量又瑣碎的作業做處理,眼下要從iReport的設定檔(jrxml)擷取每一項套印參數出來,提供給別人做Excel公式的資料表進行作業。
Thumbnail
檔案屬性 filetype(string):回傳參數檔案的種類字串,可能的回傳值有:fifo、char、dir、block、link、file和unknown,如果有錯誤回傳false。 fileatime(string):回傳參數檔案的最後存取時間,單位是UNIX的時間戳記,如果錯誤回傳fal
Thumbnail
檔案屬性 filetype(string):回傳參數檔案的種類字串,可能的回傳值有:fifo、char、dir、block、link、file和unknown,如果有錯誤回傳false。 fileatime(string):回傳參數檔案的最後存取時間,單位是UNIX的時間戳記,如果錯誤回傳fal
Thumbnail
檔案存取 路徑與檔案處理是很常用的功能,他們可以獨立運作,但是常常搭配一起使用,如果你處理的檔案是在當下的目錄,可以不需要使用路徑的功能單獨讀寫檔案,如果是想要做一些資料夾的管理,就需要理解路徑和檔案之間的關係。
Thumbnail
檔案存取 路徑與檔案處理是很常用的功能,他們可以獨立運作,但是常常搭配一起使用,如果你處理的檔案是在當下的目錄,可以不需要使用路徑的功能單獨讀寫檔案,如果是想要做一些資料夾的管理,就需要理解路徑和檔案之間的關係。
Thumbnail
在第十四課中,我們將探討 Python 中的檔案操作,包括如何讀取、寫入和管理文件。這對於許多實際應用場景都是必要的,例如日誌記錄、資料分析和資料持久化。
Thumbnail
在第十四課中,我們將探討 Python 中的檔案操作,包括如何讀取、寫入和管理文件。這對於許多實際應用場景都是必要的,例如日誌記錄、資料分析和資料持久化。
Thumbnail
在第九課中,我們將學習 Python 的文件讀取與寫入。 Python 提供了一些內建的函式,使我們能夠輕鬆讀取和寫入文件。
Thumbnail
在第九課中,我們將學習 Python 的文件讀取與寫入。 Python 提供了一些內建的函式,使我們能夠輕鬆讀取和寫入文件。
Thumbnail
在结束了Python数据类型学习之后,我们今天开始进入一个新的篇章。今天,让我们来详细了解一下在Python中如何去进行文件操作。
Thumbnail
在结束了Python数据类型学习之后,我们今天开始进入一个新的篇章。今天,让我们来详细了解一下在Python中如何去进行文件操作。
Thumbnail
在這篇文章中,我將簡要介紹如何使用Python來處理文件,包括如何打開、讀取、寫入和關閉文件。我也會給出一些範例程式碼和註解,讓你更容易理解和學習。要打開一個文件,我們需要使用open()函數,它接受文件名稱和模式兩個參數。文件名稱是一個字串,表示要訪問的文件的路徑和名稱。
Thumbnail
在這篇文章中,我將簡要介紹如何使用Python來處理文件,包括如何打開、讀取、寫入和關閉文件。我也會給出一些範例程式碼和註解,讓你更容易理解和學習。要打開一個文件,我們需要使用open()函數,它接受文件名稱和模式兩個參數。文件名稱是一個字串,表示要訪問的文件的路徑和名稱。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News