簡介
程式語言的主要功能之一是協助您處理資料。這包括資料的寫入、讀取、儲存以及傳輸。Python 是最受歡迎的程式語言之一。如果您計劃使用 Python,您應該對如何使用不同的檔案類型有基本的概念。最簡單的檔案類型是 txt 或純文字檔案格式。假設您有一個用於檢查使用者存取控制的程式。該清單本身將儲存為文字檔案。因此,雖然您可能會在某些企業中使用其他程式,但您將從文字文件中擷取數值。這就是為什麼理解文字檔案格式非常重要的原因。
在本教學中, 我們將先簡要介紹 Python 中基本檔案格式的背景。然後,我們將學習如何在程式中開啟、讀取和寫入文字檔案。
在我們開始之前…
在我們開始教學之前,您需要滿足一些先決條件。首先,您應該已經 安裝了 Python 3。除此之外,您還需要在系統上建立本機程式開發環境。本教學 適用於 Ubuntu 16.04 及以上版本、Debian 8、CentOS 7、Mac OS X 和 Windows 10。
檔案格式
您可以在 Python 中使用多種檔案格式。下表列出了所有不同的格式及其適用場景:
| 檔案類型 | 說明 |
|---|---|
| txt | 純文字檔案儲存僅代表字元(或字串)的資料,不包含任何結構化中介資料。 |
| CSV | 逗號分隔值檔案使用逗號(或其他分隔符號)來結構化儲存的資料,使資料能夠以表格格式儲存。 |
| HTML | 超文字標示語言檔案儲存結構化資料,通常用於大多數網站。 |
| JSON | JavaScript Object Notation 是一種簡單且高效的格式,使其成為最常用於儲存和傳輸資料的格式之一。 |
在本教學中,我們將進一步詳細探討 txt 檔案格式。
步驟 1:建立文字檔案
首先,我們必須在 Python 中建立一個新的文字檔案。為了便於理解,我們將以一星期中的幾天為例。為此,我們將開啟文字編輯器,建立一個新的 txt 檔案,並將其命名為 days.txt。接下來,讓我們將一星期中的每一天作為單獨的行輸入到新檔案中:
|
1 2 3 4 5 6 7 |
星期一 星期二 星期三 星期四 星期五 星期六 星期日 |
現在我們有了內容,我們將儲存該檔案。記住您儲存檔案的位置非常重要。假設我們的使用者是 sammy。該使用者已將檔案儲存在以下路徑: /users/sammy/days.txt。我們將在後續的步驟中使用此路徑。
步驟 2:開啟文字檔案
在開始編寫程式之前,您必須在編輯器中建立一個檔案。我們將建立一個名為 files.py 的檔案,並將其儲存在 /users/sammy 目錄中,就像我們的 days.txt 檔案一樣。
要開啟任何檔案,您必須在磁碟檔案和變數之間建立連接。這就是所謂的「開啟」檔案。檔案的位置由檔案的路徑指示。您需要路徑才能開啟檔案。例如,days.txt 檔案的路徑如下: /users/sammy/days.txt。然後,我們將建立一個字串變數來儲存此資料。如下所示,我們將在 path 變數於 files.py 指令碼中,並根據 days.txt 的路徑修改該變數:
|
1 |
path = '/users/sammy/days.txt' |
之後,使用 open() 函式,我們將開啟 days.txt 檔案。對於此函式,您需要提供檔案路徑。在其他參數中,最重要的是 mode(模式)參數。這是一個選用的字串,您可以加入它來指定開啟檔案的模式。以下是幾種模式選項:
'r’:讀取'w’:寫入'x’:建立並寫入新檔案'a’:附加到檔案'r+’:讀取和寫入同一個檔案
若要單純從檔案中讀取,您需要使用 'r’ 模式。執行 open() 函式並開啟 days.txt 檔案。接下來,將其指派給 days_file 變數:
|
1 |
days_file = open(path,'r') |
步驟 3:讀取文字檔案
打開檔案後,我們可以透過該變數讀取其中的內容。與檔案讀取相關的操作有三種。讓我們來探索這三種操作。
第一種操作是 <file>.read()。它會以一個字串顯示檔案的全部內容:
|
1 |
days_file.read() |
輸出:
|
1 |
'Monday\nTuesday\nWednesday\nThursday\nFriday\nSaturday\nSunday\n' |
<file>.readline()。這將顯示檔案中的下一行。它基本上會逐行讀取檔案:|
1 |
days_file.readline() |
輸出:
|
1 |
'Monday\n' |
|
1 |
days_file.readline() |
輸出:
|
1 |
'Tuesday\n' |
<file>.readlines()。它將顯示檔案中所有行的清單。每個項目代表一行:|
1 |
days_file.readlines() |
輸出:
|
1 |
['Monday\n', 'Tuesday\n', 'Wednesday\n', 'Thursday\n', 'Friday\n', 'Saturday\n', 'Sunday\n'] |
步驟 4:寫入檔案
接下來,我們將學習如何寫入一個新檔案。在我們的範例中,這個檔案將包含標題(Days of the Week),隨後是星期中的各個日子。
首先,我們必須建立 title 變數:
|
1 |
title = 'Days of the Week\n' |
接下來,我們必須將星期中的各個日子儲存為字串變數的形式。這個變數將被命名為 days。我們將繼續使用在上述步驟中使用的程式碼。我們將以讀取模式開啟檔案,並將輸出儲存到我們的新 days 變數中:
|
1 2 3 |
path = '/users/sammy/days.txt' days_file = open(path,'r') days = days_file.read() |
這意味著我們已經為標題以及星期中的各個日子建立了變數。現在我們可以開始寫入檔案本身。第一步是使用目錄 /users/sammy/ 來指定檔案位置。在路徑中,您還需要指定新檔案: /users/sammy/new_days.txt。位置路徑將保留在 new_path 變數中。接下來,使用 open() 函式以 ‘w’ 模式開啟檔案:
|
1 2 |
new_path = '/users/sammy/new_days.txt' new_days = open(new_path,'w') |
現在檔案已開啟,您可以使用寫入函式 <file>.write() 來輸入資料。在這裡,您需要輸入單個字串參數。如果您想換行,請輸入換行字元。對於我們的檔案,我們將先輸入標題,然後輸入星期中的各個日子。同時,我們還會有一些 print 語句來追蹤指令碼的進度:
|
1 2 3 4 |
new_days.write(title) print(title) new_days.write(days) print(days) |
步驟 5:關閉檔案
當您關閉檔案時,您正在終止磁碟檔案與檔案變數之間的連接。當檔案關閉後,其他程式就可以存取它。這也有助於確保檔案及其資料的安全。因此,請務必記住在處理完檔案後將其關閉。為此,您可以使用 <file>.close() 函式:
|
1 2 |
days_file.close() new_days.close() |
這就完成了 Python 中檔案處理的部分。
步驟 6:檢查程式碼
最後,我們將檢查程式碼。在執行您編寫的程式碼之前,您應該先進行檢查。程式碼看起來應該像這樣:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
path = '/users/sammy/days.txt' days_file = open(path,'r') days = days_file.read() new_path = '/users/sammy/new_days.txt' new_days = open(new_path,'w') title = '一星期中的日子\n' new_days.write(title) print(title) new_days.write(days) print(days) days_file.close() new_days.close() |
儲存程式碼後,您必須執行該 Python 腳本。為此,您需要開啟終端機:
|
1 |
$ python files.py |
它將顯示以下輸出:
|
1 2 3 4 5 6 7 8 9 |
日子 的 the 星期 星期一 星期二 星期三 星期四 星期五 星期六 星期日 |
要檢查您的程式碼,您將開啟新檔案,即 new_days.txt。如果一切正常,您將看到以下內容:
|
1 2 3 4 5 6 7 8 9 |
日子 的 the 星期 星期一 星期二 星期三 星期四 星期五 星期六 星期日 |
如果您看到與上述類似的內容,說明您已成功完成這些步驟。
結論
透過本教學,我們旨在向您介紹 Python 3 中的基本檔案格式。其中,最關鍵的格式之一是文字檔案格式。我們對此進行了更詳細的探討。現在,您已經非常清楚開啟、讀取、寫入和關閉資料檔案的過程和步驟。利用這些資訊,您將能夠在自己的 Python 程式設計實踐中有效地利用文字檔案格式。
既然您已經學會了如何在 Python 中處理純文字檔案,以下是來自我們部落格 的更多教學,將協助您開始使用 Python:
- 使用 Python 3 字串格式化工具
- Python 3 中的迴圈:使用 Break、Continue 和 Pass 陳述式
- Python 3:資料型態轉換指南
- 如何使用 Scrapy 和 Python 3 爬取網頁
祝您程式設計愉快!
留言
目前尚無留言。成為第一個留言的人吧。