Python 檔案處理是程式設計中一個非常重要的環節,無論你是想:
-儲存資料: 將程式運算的結果、使用者輸入的資料或是從網路抓取的資料儲存起來,方便日後分析或使用。
-讀取資料: 從檔案中讀取資料進行進一步的處理,例如資料分析、機器學習等。
-建立應用程式: 許多應用程式都需要與檔案系統互動,例如文字編輯器、圖片瀏覽器、資料庫管理系統等。
-資料持久化: 將程式運行的結果儲存到檔案中,即使程式結束運行,資料也不會丟失。
-資料共享: 可以將資料儲存到檔案中,方便與他人共享或在不同程式之間傳遞。
-自動化任務: 可以寫 Python 程式自動化處理大量檔案,提高工作效率。
-建立更複雜的應用程式: 檔案處理是許多複雜應用程式的基礎。
-語法簡單: Python 的檔案處理語法非常直觀,容易學習。
-功能強大: Python 提供了豐富的函式庫,可以處理各種格式的檔案。
-跨平台: Python 程式可以在不同的作業系統上運行,檔案處理功能也具有良好的跨平台性。
-資料分析: 從 CSV、Excel 等檔案中讀取資料,進行統計分析、資料視覺化等。
-網頁爬蟲: 將網頁內容下載並儲存到本地檔案中。
-資料庫操作: 將資料儲存到資料庫中,或從資料庫中讀取資料。
-配置檔案: 讀取配置檔案,設定程式的運行參數。
-日誌記錄: 將程式的運行狀態記錄到檔案中,方便排錯。
功能 | 解釋 | 範例 |
---|---|---|
開啟檔案open("filename.txt", "mode") |
開啟檔案 filename.txt 。常見模式有:r 讀取、w 覆寫、a 追加、x 創建新檔案、b 二進位模式。 |
file = open("filename.txt", "r") |
讀取整個檔案 .read() |
讀取檔案所有內容,返回為字串。 | words = file.read() |
讀取指定數量的字元 .read(n) |
讀取指定字元數量 n ,返回為字串。 |
word = file.read(6) |
讀取單行 .readline() |
讀取下一行內容,返回為字串。 | first_line = file.readline() |
讀取所有行 .readlines() |
讀取所有行並返回列表,每行作為列表的一個元素。 | lines = file.readlines() |
寫入檔案 .write(str) |
將字串 str 寫入檔案(覆蓋模式)。 |
file.write("Hello, world!\n") |
寫入多行 .writelines(seq) |
將 seq 序列中的每個元素作為一行寫入檔案,適用於列表或元組 |
lines = ["Line 1\n", "Line 2\n"] file.writelines(lines) |
使用 print() 寫入 print(data, file=file) |
使用 print() 函數將 data 寫入到指定的檔案 file 。 |
data = "Hello, world!" print(data, file=file) |
使用 with 自動關閉with open("filename.txt", "mode") as file |
使用 with 開啟檔案,程式執行完畢後會自動關閉檔案。 |
with open("filename.txt", "w") as file: file.write("Hello, world!") |
with 和 writelines() |
with open("my_file.txt", "w") as file file.writelines(lines) |
利用 with 配合 writelines() 一次寫入多行,避免忘記關閉檔案。 |
print() 導向檔案 |
print(data, file=f) |
將 print() 函數的輸出導向指定的檔案 f 。 |
filename.txt"
I love python
I love Club
使用 open() 函式:
file = open("filename.txt", "mode")
filename.txt: 要開啟的檔案名稱相對路徑。
mode: 開啟模式,常見的有:
r: 讀取 (預設)
w: 寫入 (覆寫)
a: 追加 (在檔案末尾追加)
x: 創建新檔案 (如果檔案已存在則報錯)
b: 以二進位模式開啟
file = open("filename.txt", "r")
words = file.read()
print(words)
file.close()
#輸出
I love python
I love Club
file = open("filename.txt", "r")
word = file.read(6)
print(word)
file.close()
#輸出I love
file = open("filename.txt", "r")
first_line = file.readline()
second_line = file.readline()
print(second_line,first_line,sep='\n')
file.close()
#輸出
I love Club
I love python
它會將文件中的每一行讀取為一個元素,並將這些元素存儲在一個列表中。
file = open("filename.txt", "r")
a = file.readlines()
print(a)
file.close()
#輸出
['I love python\n',
'I love Club']
# 遍歷每一行
file = open("filename.txt", "r")
for line in file.readlines():
print(line)
file.close()
#輸出
I love python
I love Club
寫入檔案的模式
'w': 寫入模式,如果檔案已存在則會覆蓋原有內容。
'a': 追加模式,在檔案末尾追加新的內容。
'x': 創建新檔案模式,如果檔案已存在則會報錯。
#開啟檔案:
file = open("my_file.txt", "w") # 以寫入模式開啟一個名為 my_file.txt 的檔案
#寫入檔案
file.write("Hello, world!\n") # 寫入一行文字
#關閉檔案:
file.close()
為了避免忘記關閉檔案導致的資源洩露,Python 提供了 with 語句,它會在代碼塊執行完畢後自動關閉檔案。
with open("my_file.txt", "a") as file:
file.write("This is a new line.\n")
as file 中的 file 是自定義的
as file 中的 f 並不是 Python 的關鍵字,而是一個變量名稱。
你可以將它換成任何你喜歡的變量名稱
在 Python 中,當我們想要一次性將一個序列(例如列表或元組)中的多個字符串寫入到一個檔案中時,,並且在每個字符串的末尾自動添加一個換行符。.writelines(seq) 方法是一個非常方便的選擇。
with open("my_file.txt", "w", encoding='utf-8') as file:
lines = ["第一行\n", "第二行\n", "第三行\n", "test\n"]
file.writelines(lines)
在 Python 中,print() 函數通常用來將資料輸出到終端(也就是我們平常看到的命令列)。然而,透過指定 file 參數,我們可以將輸出導向到一個檔案中,而不是顯示在螢幕上。
-data: 你想要寫入檔案的資料,可以是字符串、數字、或是更複雜的資料結構。
-file: 要寫入的檔案對象。這個對象通常是透過 open() 函數取得的。
with open('my_file.txt', 'w') as file:
data = "Hello, world!\n"
print(data, file=file)
with open('movieList.txt', 'w', encoding='utf-8')as f:
movies = ['movie1', 'movie2', 'movie3']
print(movies, file=f)
-write(): 更底層的方法,可以精確控制寫入的內容,但使用起來可能稍微複雜一些。
-print(): 更高層次的方法,提供了更多的格式化功能,使用起來更方便。