使用 Python 讀寫文件
有些數據是臨時的,它們在應用程序運行時存儲在內存中,然後丟棄。但是有些數據是持久的。它們存儲在硬碟驅動器上供以後使用,而且它們通常是用戶最關心的東西。對於程序員來說,編寫代碼讀寫文件是很常見的,但每種語言處理該任務的方式都不同。本文演示了如何使用 Python 處理文件數據。
安裝 Python
在 Linux 上,你可能已經安裝了 Python。如果沒有,你可以通過發行版軟體倉庫安裝它。例如,在 CentOS 或 RHEL 上:
$ sudo dnf install python3
在 macOS 上,你可以使用 MacPorts 或 Homebrew 安裝。在 Windows 上,你可以使用 Chocolatey 安裝。
一旦安裝了 Python,打開你最喜歡的文本編輯器,準備好寫代碼吧。
使用 Python 向文件中寫入數據
如果你需要向一個文件中寫入數據,記住有三個步驟:
- 打開
- 寫入
- 關閉
這與你在計算機上編碼、編輯照片或執行其他操作時使用的步驟完全相同。首先,打開要編輯的文檔,然後進行編輯,最後關閉文檔。
在 Python 中,過程是這樣的:
f = open('example.txt', 'w')
f.write('hello world')
f.close()
這個例子中,第一行以寫模式打開了一個文件,然後用變數 f
表示,我使用了 f
是因為它在 Python 代碼中很常見,使用其他任意有效變數名也能正常工作。
在打開文件時,有不同的模式:
w
代表寫入r+
代表可讀可寫a
表示追加
第二行表示向文件中寫入數據,本例寫入的是純文本,但你可以寫入任意類型的數據。
最後一行關閉了文件。
使用 with
語法寫入數據
對於快速的文件交互,常用有一種簡短的方法可以寫入數據。它不會使文件保持打開狀態,所以你不必記得調用 close()
函數。相反,它使用 with
語法:
with open('example.txt', 'a') as f:
f.write('hello open source')
使用 Python 讀取數據
如果你或你的用戶需要通過應用程序需要向文件中寫入一些數據,然後你需要使用它們,那麼你就需要讀取文件了。與寫入類似,邏輯一樣:
- 打開
- 讀取
- 關閉
同樣的,這個邏輯反映了你一開始使用計算機就已知的內容。閱讀文檔,你可以打開、閱讀,然後關閉。在計算機術語中,「打開」文件意味著將其載入到內存中。
實際上,一個文本文件內容肯定不止一行。例如,你需要讀取一個配置文件、遊戲存檔或樂隊下一首歌曲的歌詞,正如你打開一本實體書時,你不可能立刻讀完整本書,代碼也只能解析已經載入到內存中的文件。因此,你可能需要遍歷文件的內容。
f = open('example.tmp', 'r')
for line in f:
print(line)
f.close()
示例的第一行指明使用 讀 模式打開一個文件,然後文件交由變數 f
表示,但就像你寫數據一樣,變數名是任意的。f
並沒有什麼特殊的,它只是單詞 「file」 的最簡表示,所以 Python 程序員會經常使用它。
在第二行,我們使用了 line
,另一個任意變數名,用來表示 f
的每一行。這告訴 Python 逐行迭代文件的內容,並將每一行的內容列印到輸出中(在本例中為終端或 IDLE)。
使用 with
語法讀取數據
就像寫入一樣,使用 with
語法是一種更簡短的方法讀取數據。即不需要調用 close()
方法,方便地快速交互。
with open('example.txt', 'r') as f:
for line in f:
print(line)
文件和 Python
使用 Python 有很多方法向文件寫入數據,包括用 JSON、YAML、TOML 等不同的格式寫入。還有一個非常好的內置方法用於創建和維護 SQLite 資料庫,以及許多庫來處理不同的文件格式,包括 圖像、音頻和視頻等。
via: https://opensource.com/article/21/7/read-write-files-python
作者:Seth Kenlon 選題:lujun9972 譯者:MjSeven 校對:turbokernel
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive