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

歡迎來到我的部落格!這裡記錄了軟體工程師的日常生活點滴,並分享程式設計與演算法的實用教學。無論你是初學者還是有經驗的開發者,都能在這裡找到深入淺出的技術解析與實戰技巧。此外,我也會分享工作中的心路歷程與學習心得,讓你不僅學到技術,更能瞭解軟體開發的實際應用與挑戰。希望透過這個平台,能與你共同成長,激發對技術的熱情!
留言0
查看全部
發表第一個留言支持創作者!
在這篇教學中,我們將深入介紹 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
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
上兩篇有關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
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
上兩篇有關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 檔案。