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

更新於 2024/10/30閱讀時間約 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 語句作為上下文管理器可以自動管理文件的開關,簡化代碼結構,避免文件未正確關閉的風險。熟練掌握檔案的讀取、寫入、模式選擇以及上下文管理器的使用,可以讓你的程式更加穩健、高效。

歡迎來到我的部落格!這裡記錄了軟體工程師的日常生活點滴,並分享程式設計與演算法的實用教學。無論你是初學者還是有經驗的開發者,都能在這裡找到深入淺出的技術解析與實戰技巧。此外,我也會分享工作中的心路歷程與學習心得,讓你不僅學到技術,更能瞭解軟體開發的實際應用與挑戰。希望透過這個平台,能與你共同成長,激發對技術的熱情!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
在這篇教學中,我們將深入介紹 Python 的控制流程,包括 if-else 判斷、for 和 while 迴圈、break 和 continue 語句的使用,以及如何定義函數並進行參數傳遞。這些概念都是撰寫 Python 程式時的基礎知識,掌握它們將幫助你編寫更清晰、有效的程式碼。
Python 是一門功能強大且簡潔的程式語言,內建了多種資料結構來幫助開發者處理各種不同的需求。今天,我們將介紹五種常見的資料結構:字串、清單、元組、集合和字典,並學習它們的使用方式。
Python 是一個功能強大且易於學習的程式語言,適合初學者快速上手。今天,我們將介紹 Python 的幾個基礎概念,涵蓋變數、資料型別、運算符、條件判斷、迴圈和函式,這些是所有 Python 程式的核心組件。
Python 是一種功能強大且易於學習的程式語言,無論是初學者還是經驗豐富的開發者都可以從中獲益。在 Windows 作業系統上運行 Python,有許多不同的環境可以選擇,從基於網頁的開發環境到功能強大的集成開發環境 (IDE)。
Python 是目前最受歡迎的程式語言之一,它被廣泛應用於多個領域,如資料分析、網頁開發、機器學習和自動化。這篇文章將詳細介紹 Python 的基礎語法,並探討 Python 的優缺點、與其他程式語言的比較,最終解答為什麼你應該學習 Python。
在這篇教學中,我們將深入介紹 Python 的控制流程,包括 if-else 判斷、for 和 while 迴圈、break 和 continue 語句的使用,以及如何定義函數並進行參數傳遞。這些概念都是撰寫 Python 程式時的基礎知識,掌握它們將幫助你編寫更清晰、有效的程式碼。
Python 是一門功能強大且簡潔的程式語言,內建了多種資料結構來幫助開發者處理各種不同的需求。今天,我們將介紹五種常見的資料結構:字串、清單、元組、集合和字典,並學習它們的使用方式。
Python 是一個功能強大且易於學習的程式語言,適合初學者快速上手。今天,我們將介紹 Python 的幾個基礎概念,涵蓋變數、資料型別、運算符、條件判斷、迴圈和函式,這些是所有 Python 程式的核心組件。
Python 是一種功能強大且易於學習的程式語言,無論是初學者還是經驗豐富的開發者都可以從中獲益。在 Windows 作業系統上運行 Python,有許多不同的環境可以選擇,從基於網頁的開發環境到功能強大的集成開發環境 (IDE)。
Python 是目前最受歡迎的程式語言之一,它被廣泛應用於多個領域,如資料分析、網頁開發、機器學習和自動化。這篇文章將詳細介紹 Python 的基礎語法,並探討 Python 的優缺點、與其他程式語言的比較,最終解答為什麼你應該學習 Python。
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
上兩篇有關List的文章,此篇文上兩章的延續,整理一些常用的方法和操作。 [Python]List(列表)新增、修改、刪除元素 [Python基礎]容器 list(列表),tuple(元組) 還有一些常用的 list 方法和操作,讓你能更靈活地處理列表數據
Thumbnail
在 Python 中,print( ) 函數用於將結果輸出到螢幕上。當你嘗試將不同資料型別(例如字串和數字)混合在一起輸出時,print( )函數無法直接處理這些不同型別的資料,因此你需要先將它們轉換為相同的資料型別。通常,這意味著需要將數字轉換為字串型別,以便與其他字串一同輸出。 雖然我們也可以
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
我們在學習kafka的過程中最不習慣的就是不管什麼樣的資料, 在kafka的傳輸過程都會是binary的資料格式, 因此我們在撰寫程式的過程中並不是那麼的直觀, 必須將資料從float、int…資料型態轉型成binary才能順利傳送, 那麼基於這樣的前提之下, python這套程式語言可以怎麼做
Thumbnail
在讀取檔案時,最怕路徑的問題,常常會有路徑錯誤造成的異常報錯。 為了避免諸如此類的問題發生,明白程式的當前目錄與檔案的路徑是很重要的。 可以利用os 模組是 Python 中的一個標準庫,提供了許多與操作系統的功能。 以下是一些常用的 os 模組基本操作及其範例: 1. os.getcwd
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
Thumbnail
JSON 格式因為其輕巧、易於讀寫的特性,所以普遍應用於數據儲存。本文將介紹如何使用 Python 來讀取、處理、解析和修改 JSON 檔案。
Thumbnail
在數據分析的工作中,處理 CSV 檔案是一項基礎且重要的技能,CSV 格式的檔案是以純文字形式儲存表格數據,簡潔的結構使其普遍應用於數據儲存。本文將介紹如何使用Python 來讀取、處理和儲存 CSV 檔案。
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
上兩篇有關List的文章,此篇文上兩章的延續,整理一些常用的方法和操作。 [Python]List(列表)新增、修改、刪除元素 [Python基礎]容器 list(列表),tuple(元組) 還有一些常用的 list 方法和操作,讓你能更靈活地處理列表數據
Thumbnail
在 Python 中,print( ) 函數用於將結果輸出到螢幕上。當你嘗試將不同資料型別(例如字串和數字)混合在一起輸出時,print( )函數無法直接處理這些不同型別的資料,因此你需要先將它們轉換為相同的資料型別。通常,這意味著需要將數字轉換為字串型別,以便與其他字串一同輸出。 雖然我們也可以
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
我們在學習kafka的過程中最不習慣的就是不管什麼樣的資料, 在kafka的傳輸過程都會是binary的資料格式, 因此我們在撰寫程式的過程中並不是那麼的直觀, 必須將資料從float、int…資料型態轉型成binary才能順利傳送, 那麼基於這樣的前提之下, python這套程式語言可以怎麼做
Thumbnail
在讀取檔案時,最怕路徑的問題,常常會有路徑錯誤造成的異常報錯。 為了避免諸如此類的問題發生,明白程式的當前目錄與檔案的路徑是很重要的。 可以利用os 模組是 Python 中的一個標準庫,提供了許多與操作系統的功能。 以下是一些常用的 os 模組基本操作及其範例: 1. os.getcwd
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
Thumbnail
JSON 格式因為其輕巧、易於讀寫的特性,所以普遍應用於數據儲存。本文將介紹如何使用 Python 來讀取、處理、解析和修改 JSON 檔案。
Thumbnail
在數據分析的工作中,處理 CSV 檔案是一項基礎且重要的技能,CSV 格式的檔案是以純文字形式儲存表格數據,簡潔的結構使其普遍應用於數據儲存。本文將介紹如何使用Python 來讀取、處理和儲存 CSV 檔案。