[Python教學] 檔案存取

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

檔案存取

Python File 檔案

Python File 檔案

檔案處理

在Python中,你可以使用檔案存取來讀取和寫入檔案。檔案存取是處理檔案的基本操作之一,它使你能夠在程式中處理文本檔案、二進制檔案等。

以下是Python中的檔案存取介紹:

打開檔案

要打開一個檔案,你可以使用**open()**函數,並指定檔案的路徑和打開模式。常見的打開模式包括:

  • 'r':只讀取模式,用於讀取檔案的內容(預設模式)。
  • 'w':寫入模式,用於創建或覆蓋檔案的內容。
  • 'a':追加模式,用於在檔案末尾添加內容。
  • 'b':二進制模式,用於處理二進制檔案,例如圖像或音頻檔案。
  • 't':文本模式,用於處理文本檔案(預設模式)。

以下是一個示例,如何打開一個文本檔案以進行讀取:

# 打開一個文本檔案以進行讀取
file = open('example.txt', 'r')


讀取檔案

一旦你打開了檔案,你可以使用不同的方法來讀取檔案的內容,例如:

  • read():讀取整個檔案的內容。
  • readline():逐行讀取檔案的內容。
  • readlines():將檔案的內容讀取到一個列表中,每一行作為列表中的一個元素。

以下是一個範例,如何讀取一個文本檔案的內容:

# 讀取整個檔案的內容
content = file.read()
print(content)

# 逐行讀取檔案的內容
line = file.readline()
print(line)

# 將檔案的內容讀取到一個列表中
lines = file.readlines()
print(lines)


寫入檔案

如果你想要創建或修改檔案的內容,你可以使用寫入模式 'w' 或追加模式 'a'。使用 write() 方法寫入內容到檔案。

以下是一個範例,如何寫入一個文本檔案:

# 打開一個檔案以進行寫入
file = open('example.txt', 'w')

# 寫入內容到檔案
file.write("這是寫入的內容。\n")
file.write("這是另一行寫入的內容。\n")

# 關閉檔案
file.close()


關閉檔案

在完成對檔案的操作後,應該使用 close() 方法來關閉檔案,以釋放資源並確保檔案正確關閉。

# 關閉檔案
file.close()


使用 with 陳述式

為了確保檔案在使用後被正確關閉,建議使用 with 陳述式來處理檔案。with 陳述式在離開塊後會自動關閉檔案。

with open('example.txt', 'r') as file:
content = file.read()
# 在這個區塊中進行檔案操作,無需手動關閉檔案

# 在離開區塊後,檔案會自動關閉

這些是Python中基本的檔案存取操作。檔案存取是處理和管理檔案內容的重要部分,可用於讀取和寫入文本和二進制檔案,以及處理數據、配置文件等。請確保在使用檔案存取時小心處理檔案的打開和關閉,以確保程式的穩定性和安全性。


路徑處理

在Python中,os 和 os.path 是用於處理文件和目錄路徑的模組。os 模組提供了許多操作操作系統的函數,而 os.path 模組則提供了用於處理路徑的函數,以確保代碼在不同操作系統上都能正確運行。

你可以使用 os.getcwd() 函數來獲取當前的工作目錄。以下是一個範例:

import os

# 獲取當前工作目錄
current_directory = os.getcwd()

print("當前工作目錄:", current_directory)

在這個範例中,os.getcwd() 函數會返回當前的工作目錄的絕對路徑,然後我們將其打印出來。這是一個簡單的方法,用於查找你的Python程式當前正在運行的目錄。


以下是 os.path 模組的一些常見函數和方法:


os.path.join():用於將多個路徑組件合併為一個完整的路徑。它會根據當前操作系統的慣例自動添加適當的路徑分隔符。

import os

# 合併路徑組件
path = os.path.join("folder", "subfolder", "file.txt")
# folder/subfolder/file.txt


os.path.abspath():用於獲取指定路徑的絕對路徑。

import os

# 獲取絕對路徑
absolute_path = os.path.abspath("file.txt")
# /Users/pellok/file.txt


os.path.basename():用於獲取路徑的基本文件名(不包括路徑)。

import os

# 獲取基本文件名
filename = os.path.basename("path/to/file.txt")
# file.txt


os.path.dirname():用於獲取路徑的目錄部分(不包括文件名)。

import os

# 獲取目錄
directory = os.path.dirname("path/to/file.txt")
# path/to


os.path.exists():用於檢查路徑是否存在。

import os

# 檢查路徑是否存在
exists = os.path.exists("path/to/file.txt")
# False


os.path.isfile():用於檢查路徑是否指向一個文件。

import os

# 檢查是否是文件
is_file = os.path.isfile("path/to/file.txt")
# False


os.path.isdir():用於檢查路徑是否指向一個目錄。

import os

# 檢查是否是目錄
is_directory = os.path.isdir("path/to/folder")
# False


os.path.splitext():用於分離文件名中的擴展名部分。

import os

# 分離擴展名
name, extension = os.path.splitext("file.txt")
# name='file' , extension='.txt'

這些函數和方法使你能夠在不同操作系統上有效地處理路徑,確保你的代碼能夠跨平台運行。無論你是在Windows、Linux還是macOS上運行Python代碼,os.path 模組都可以幫助你處理檔案和目錄路徑。

os 常用方法

python os 常用方法

python os 常用方法

綜合應用

你可以使用 os 模組來操作檔案,以及使用 open() 函數來讀取和寫入檔案。

以下是一個範例,如何使用 os 和 open() 來讀取一個檔案的內容,然後將其寫入到另一個檔案中:

import os

# 定義輸入和輸出檔案的路徑
input_file_path = "input.txt"
output_file_path = "output.txt"

# 檢查輸入檔案是否存在
if os.path.exists(input_file_path):
# 打開輸入檔案以進行讀取
with open(input_file_path, 'r') as input_file:
# 讀取輸入檔案的內容
file_content = input_file.read()

# 檢查輸出檔案是否存在,如果存在,則追加內容,否則創建新檔案
with open(output_file_path, 'a' if os.path.exists(output_file_path) else 'w') as output_file:
# 將讀取的內容寫入輸出檔案
output_file.write(file_content)

print(f"已將內容從 {input_file_path} 寫入到 {output_file_path}")
else:
print(f"輸入檔案 {input_file_path} 不存在")

在這個範例中,我們首先檢查輸入檔案是否存在。如果存在,我們使用 open() 函數打開輸入檔案,讀取其內容,然後關閉它。接下來,我們檢查輸出檔案是否存在,如果存在,我們以追加模式 'a' 打開輸出檔案,以便將內容附加到現有檔案中;如果輸出檔案不存在,我們以寫入模式 'w' 創建新檔案。最後,我們使用 write() 方法將輸入檔案的內容寫入到輸出檔案中。

請確保替換 input.txt 和 output.txt 為實際的檔案路徑,並根據你的需求進行調整。

結論

路徑與檔案處理是很常用的功能,他們可以獨立運作,但是常常搭配一起使用,如果你處理的檔案是在當下的目錄,可以不需要使用路徑的功能單獨讀寫檔案,如果是想要做一些資料夾的管理,就需要理解路徑和檔案之間的關係。


系列文章

[Python教學]開發工具介紹

[Python經驗分享]為什麼要學Python? 我回不去了

Google Colab 介紹

[Python教學] 資料型態

[Python教學] IF判斷式

[Python教學] List 清單 和 Tuple元組

[Python教學] for 和 while 迴圈

[Python教學] Dictionary 字典 和 Set 集合

[Python教學] Function函示

[Python教學] Class 類別

[Python教學] 例外處理

[Python教學] 檔案存取


最後最後有一件小小的請求,請大家幫我填寫一下問卷,

讓我們知道你想上怎麼樣課程,感激不盡。

問卷這邊


Facebook 粉絲頁 - TechMasters 工程師養成記

程式教育 - 工程師養成記

同步分享到部落格

avatar-img
12會員
16內容數
最近當一個講師,把自己會的技能分享出去, 從平常工作就在使用的Python開始教學 我會陸續把資料分享上來,希望可以透過教學相長的方式,互相學習進步。 教學單元有Colab介紹與使用、ChatGPT助教、變數與資料型態、IF判斷式、List清單、For迴圈、字典與集合、函式與模組、Class類別與物件、標準函示庫與套件
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
何誠殷的沙龍 的其他內容
例外處理 在Python中,try 和 except 是用來處理異常的關鍵字。它們讓你能夠在代碼中檢測和處理可能引發異常的情況,以確保程序在遇到問題時不會崩潰,而是能夠優雅地處理錯誤情況。 基本用法,以下是 try 和 except 的基本用法: try: # 可能引發異常的代碼 excep
Class 類別 想像一下,假如我們要做一個有關食譜和食物的程式。首先,什麼是食譜呢?食譜是一個告訴我們如何做一道菜的指南,裡面會寫著需要的材料和做法。這就像是一個「類別」,它定義了一種事物的特性和行為。
Function函示 想像一個特別的工廠,叫做「點心工廠」。 這個工廠可以製作各種美味的點心,比如餅乾、蛋糕、糖果等等。 每種點心都有不同的味道和形狀。 在這個比喻中,我們可以把「點心工廠」想像成是一個函式,而工廠製作的各種點心就是函式可以執行的事情。
Dictionary 字典 和 Set 集合 字典(Dictionary)是 Python 中一個常用的資料結構,用於儲存一組鍵值對(Key-Value pairs)。集合(Set)是 Python 中的一種無序、可變的資料結構,用於存儲多個元素,且集合中的元素是唯一的(不重複)
for 和 while 迴圈,回圈觀念就是重複,想像自己是一位跑者,需要繞操場十圈才能抵達終點,這十圈在同一個操場上奔跑,這個概念轉換回來解釋程式的回圈就是一直做重複的事情。 for 迴圈是 Python 中的一個迴圈控制結構,用於對集合(例如清單、字串、元組等)中的每個元素進行迭代操作
List 清單 和 Tuple元組 清單在Python裡面非常的常用,大家一定要熟練這些基礎的元素。 在Python中,列表(List)是一種常用的資料類型,用於儲存一組有序的元素。列表是可變的(Mutable),這意味著你可以在列表中新增、刪除和修改元素。列表使用方括號 []
例外處理 在Python中,try 和 except 是用來處理異常的關鍵字。它們讓你能夠在代碼中檢測和處理可能引發異常的情況,以確保程序在遇到問題時不會崩潰,而是能夠優雅地處理錯誤情況。 基本用法,以下是 try 和 except 的基本用法: try: # 可能引發異常的代碼 excep
Class 類別 想像一下,假如我們要做一個有關食譜和食物的程式。首先,什麼是食譜呢?食譜是一個告訴我們如何做一道菜的指南,裡面會寫著需要的材料和做法。這就像是一個「類別」,它定義了一種事物的特性和行為。
Function函示 想像一個特別的工廠,叫做「點心工廠」。 這個工廠可以製作各種美味的點心,比如餅乾、蛋糕、糖果等等。 每種點心都有不同的味道和形狀。 在這個比喻中,我們可以把「點心工廠」想像成是一個函式,而工廠製作的各種點心就是函式可以執行的事情。
Dictionary 字典 和 Set 集合 字典(Dictionary)是 Python 中一個常用的資料結構,用於儲存一組鍵值對(Key-Value pairs)。集合(Set)是 Python 中的一種無序、可變的資料結構,用於存儲多個元素,且集合中的元素是唯一的(不重複)
for 和 while 迴圈,回圈觀念就是重複,想像自己是一位跑者,需要繞操場十圈才能抵達終點,這十圈在同一個操場上奔跑,這個概念轉換回來解釋程式的回圈就是一直做重複的事情。 for 迴圈是 Python 中的一個迴圈控制結構,用於對集合(例如清單、字串、元組等)中的每個元素進行迭代操作
List 清單 和 Tuple元組 清單在Python裡面非常的常用,大家一定要熟練這些基礎的元素。 在Python中,列表(List)是一種常用的資料類型,用於儲存一組有序的元素。列表是可變的(Mutable),這意味著你可以在列表中新增、刪除和修改元素。列表使用方括號 []
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Python 是一個功能強大的程式語言,提供了非常直觀的檔案處理方式。無論是處理數據檔案、讀取日誌文件,還是生成報表,檔案讀寫操作都是程式開發中的重要環節。這篇文章將帶你深入了解如何使用 Python 操作檔案,包括讀取和寫入、檔案模式選擇以及上下文管理器的使用。
Thumbnail
從範例學python的目標讀者: 針對剛進入的初學者,想學習Python語言。 有基礎本數學邏輯基礎即可。 從小遊戲學python的目標讀者: 針對已經有經驗的C/C++, Python, 或其他有程式基礎的讀者。 想實作一些小專案,從實做中學習如何分析需求、元件分拆、到底層實作
Thumbnail
想要使用python學習程式應該要怎麼開始呢? 首先就是要下載Python(程式語言)還有Pychar(整合開發環境,IDE)這兩個軟體。 在Google的搜尋欄位打上Python下載, 點選第一個Download Python。 第二步點選Download,選擇你的電腦系統。
Thumbnail
在讀取檔案時,最怕路徑的問題,常常會有路徑錯誤造成的異常報錯。 為了避免諸如此類的問題發生,明白程式的當前目錄與檔案的路徑是很重要的。 可以利用os 模組是 Python 中的一個標準庫,提供了許多與操作系統的功能。 以下是一些常用的 os 模組基本操作及其範例: 1. os.getcwd
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
ETL是資料倉儲領域中一個重要的概念,全稱為Extract-Transform-Load,中文可譯為"抽取-轉換-載入"。ETL的作用是將來自不同來源的資料抽取出來,經過清理、轉換、整合等處理後,最終將處理好的資料載入到資料倉儲或其他單一的資料存放區
Thumbnail
本文將介紹影像的基本操作包括:影像的讀取、顯示、保存,以及一些常見的操作如裁剪、旋轉、縮放等。 語法介紹 讀取影像: cv2.imread函數的參數是影像的檔案路徑。讀取後的影像以NumPy的ndarray形式表示。
Thumbnail
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
Thumbnail
JSON 格式因為其輕巧、易於讀寫的特性,所以普遍應用於數據儲存。本文將介紹如何使用 Python 來讀取、處理、解析和修改 JSON 檔案。
Thumbnail
在數據分析的工作中,處理 CSV 檔案是一項基礎且重要的技能,CSV 格式的檔案是以純文字形式儲存表格數據,簡潔的結構使其普遍應用於數據儲存。本文將介紹如何使用Python 來讀取、處理和儲存 CSV 檔案。
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Python 是一個功能強大的程式語言,提供了非常直觀的檔案處理方式。無論是處理數據檔案、讀取日誌文件,還是生成報表,檔案讀寫操作都是程式開發中的重要環節。這篇文章將帶你深入了解如何使用 Python 操作檔案,包括讀取和寫入、檔案模式選擇以及上下文管理器的使用。
Thumbnail
從範例學python的目標讀者: 針對剛進入的初學者,想學習Python語言。 有基礎本數學邏輯基礎即可。 從小遊戲學python的目標讀者: 針對已經有經驗的C/C++, Python, 或其他有程式基礎的讀者。 想實作一些小專案,從實做中學習如何分析需求、元件分拆、到底層實作
Thumbnail
想要使用python學習程式應該要怎麼開始呢? 首先就是要下載Python(程式語言)還有Pychar(整合開發環境,IDE)這兩個軟體。 在Google的搜尋欄位打上Python下載, 點選第一個Download Python。 第二步點選Download,選擇你的電腦系統。
Thumbnail
在讀取檔案時,最怕路徑的問題,常常會有路徑錯誤造成的異常報錯。 為了避免諸如此類的問題發生,明白程式的當前目錄與檔案的路徑是很重要的。 可以利用os 模組是 Python 中的一個標準庫,提供了許多與操作系統的功能。 以下是一些常用的 os 模組基本操作及其範例: 1. os.getcwd
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
ETL是資料倉儲領域中一個重要的概念,全稱為Extract-Transform-Load,中文可譯為"抽取-轉換-載入"。ETL的作用是將來自不同來源的資料抽取出來,經過清理、轉換、整合等處理後,最終將處理好的資料載入到資料倉儲或其他單一的資料存放區
Thumbnail
本文將介紹影像的基本操作包括:影像的讀取、顯示、保存,以及一些常見的操作如裁剪、旋轉、縮放等。 語法介紹 讀取影像: cv2.imread函數的參數是影像的檔案路徑。讀取後的影像以NumPy的ndarray形式表示。
Thumbnail
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
Thumbnail
JSON 格式因為其輕巧、易於讀寫的特性,所以普遍應用於數據儲存。本文將介紹如何使用 Python 來讀取、處理、解析和修改 JSON 檔案。
Thumbnail
在數據分析的工作中,處理 CSV 檔案是一項基礎且重要的技能,CSV 格式的檔案是以純文字形式儲存表格數據,簡潔的結構使其普遍應用於數據儲存。本文將介紹如何使用Python 來讀取、處理和儲存 CSV 檔案。