Python - 讀取檔案:初學者指南
哈囉,未來的 Python 大師!? 今天,我們將進入 Python 檔案處理的精彩世界。身為你友善的鄰居電腦老師,我將引導你學習讀取檔案的各個細節。如果你從未寫過一行程式碼,也別擔心 —— 我們會從頭開始,逐步建立基礎。所以,拿起你喜歡的飲料,放鬆一下,我們一起深入探討!
開啟檔案以供讀取
在我們可以讀取檔案之前,需要先開啟它。這就像在進入房屋之前敲門一樣。在 Python 中,我們使用 open()
函數來做到這一點。讓我們從一個簡單的例子開始:
file = open("hello.txt", "r")
以下是發生的事情:
-
open()
是我們用來開啟檔案的函數 -
"hello.txt"
是我們要開啟的檔案的名稱 -
"r"
表示我們以讀取模式開啟檔案
記得在完成操作後 always 關閉檔案:
file.close()
使用 read() 方法讀取檔案
現在我們已經開啟了檔案,讓我們來讀取其內容。read()
方法就像真空吸塵器 —— 一次就吸取所有內容。以下是我們如何使用它:
file = open("hello.txt", "r")
content = file.read()
print(content)
file.close()
這段程式碼將打印出檔案中的所有內容。這很簡單,但是對於大檔案要小心 —— 它們可能會吞噬你電腦的所有記憶體!
使用 readline() 方法讀取檔案
有時候,我們希望逐行讀取檔案,就像慢慢品嚐美味佳肴的每一口。這就是 readline()
的用處:
file = open("hello.txt", "r")
line = file.readline()
while line:
print(line, end='')
line = file.readline()
file.close()
這段程式碼讀取並打印檔案的每一行。print()
函數中的 end=''
防止添加額外的換行符,因為 readline()
會保留換行符。
使用 readlines() 方法讀取檔案
如果我們希望將所有行作為清單呢?這就是 readlines()
的用處:
file = open("hello.txt", "r")
lines = file.readlines()
for line in lines:
print(line, end='')
file.close()
這個方法返回一個清單,其中每個元素都是檔案中的一行。這就像得到一盒巧克力,每塊巧克力都是一行情文字!
使用 "with" 語句
現在,讓我們來談談 Python 提供的一個巧妙技巧 —— with
語句。這就像有一個負責任的朋友,他總是記得在離開後關門(檔案):
with open("hello.txt", "r") as file:
content = file.read()
print(content)
with
語句在我們完成操作後會自動關閉檔案。再也不用記得調用 close()
了!
以二進位模式讀取檔案
有時候,我們需要讀取的檔案不僅僅是文本,比如圖像或執行檔。對於這些,我們使用二進位模式:
with open("image.jpg", "rb") as file:
binary_data = file.read()
print(len(binary_data), "bytes read")
"rb"
模式以二進位讀取模式打開檔案。這就像戴上特殊眼鏡來看一和零!
從檔案中讀取整數數據
假設我們有一個每行一個數字的檔案。以下是我們如何讀取並將它們用作整數:
with open("numbers.txt", "r") as file:
numbers = [int(line.strip()) for line in file]
print("Numbers sum:", sum(numbers))
這段程式碼讀取每行,將其轉換為整數,並將其添加到清單中。然後我們可以對我們的數字進行數學運算!
從檔案中讀取浮點數數據
與整數類似,我們可以讀取浮點數:
with open("measurements.txt", "r") as file:
measurements = [float(line.strip()) for line in file]
print("Average measurement:", sum(measurements) / len(measurements))
這次,我們使用 float()
而不是 int()
來將我們的字串轉換為小數。
使用 "r+" 模式讀取和寫入檔案
有時我們希望讀取和寫入同一個檔案。"r+"
模式使我們能夠做到這一點:
with open("journal.txt", "r+") as file:
content = file.read()
file.write("\nNew entry: Today I learned about file handling in Python!")
file.seek(0)
updated_content = file.read()
print(updated_content)
這段程式碼讀取檔案,添加新行,然後再次讀取以顯示更改。
在 Python 中同時讀取和寫入檔案
這裡有一個技巧:我們可以使用兩個檔案物件同時進行讀取和寫入:
with open("original.txt", "r") as read_file, open("copy.txt", "w") as write_file:
for line in read_file:
write_file.write(line.upper())
這段程式碼從一個檔案中讀取,並將大寫版本寫入另一個檔案。這就像擁有一台會大喊的複印機!
從特定偏移量讀取檔案
有時我們希望從檔案中的特定位置開始讀取。我們可以使用 seek()
方法來做到這一點:
with open("long_text.txt", "r") as file:
file.seek(50) # 移動到第 50 個位元組
partial_content = file.read(100) # 從那個點讀取 100 個位元組
print(partial_content)
這就像在書中放上一個書籤,然後從那裡開始閱讀。
現在,讓我們把我們學過的所有方法總結在一個方便的表格中:
方法 | 描述 |
---|---|
open() |
開啟檔案 |
read() |
讀取整個檔案內容 |
readline() |
讀取單行 |
readlines() |
讀取所有行到清單中 |
with 語句 |
自動關閉檔案 |
"rb" 模式 |
以二進位讀取模式打開檔案 |
int() / float()
|
將字串轉換為數字 |
"r+" 模式 |
打開檔案以供讀取和寫入 |
seek() |
移動到檔案中的特定位置 |
就是這樣,各位!你剛剛學會了在 Python 中讀取檔案的基本知識。記住,練習成就完美,所以試著在你自己的檔案上嘗試這些操作。誰知道呢,你可能會成為下一個 Python 檔案處理大師!開心編程!?✨
Credits: Image by storyset