Linux中國

使用 Python 讀寫文件

有些數據是臨時的,它們在應用程序運行時存儲在內存中,然後丟棄。但是有些數據是持久的。它們存儲在硬碟驅動器上供以後使用,而且它們通常是用戶最關心的東西。對於程序員來說,編寫代碼讀寫文件是很常見的,但每種語言處理該任務的方式都不同。本文演示了如何使用 Python 處理文件數據。

安裝 Python

在 Linux 上,你可能已經安裝了 Python。如果沒有,你可以通過發行版軟體倉庫安裝它。例如,在 CentOS 或 RHEL 上:

$ sudo dnf install python3

在 macOS 上,你可以使用 MacPortsHomebrew 安裝。在 Windows 上,你可以使用 Chocolatey 安裝。

一旦安裝了 Python,打開你最喜歡的文本編輯器,準備好寫代碼吧。

使用 Python 向文件中寫入數據

如果你需要向一個文件中寫入數據,記住有三個步驟:

  1. 打開
  2. 寫入
  3. 關閉

這與你在計算機上編碼、編輯照片或執行其他操作時使用的步驟完全相同。首先,打開要編輯的文檔,然後進行編輯,最後關閉文檔。

在 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 讀取數據

如果你或你的用戶需要通過應用程序需要向文件中寫入一些數據,然後你需要使用它們,那麼你就需要讀取文件了。與寫入類似,邏輯一樣:

  1. 打開
  2. 讀取
  3. 關閉

同樣的,這個邏輯反映了你一開始使用計算機就已知的內容。閱讀文檔,你可以打開、閱讀,然後關閉。在計算機術語中,「打開」文件意味著將其載入到內存中。

實際上,一個文本文件內容肯定不止一行。例如,你需要讀取一個配置文件、遊戲存檔或樂隊下一首歌曲的歌詞,正如你打開一本實體書時,你不可能立刻讀完整本書,代碼也只能解析已經載入到內存中的文件。因此,你可能需要遍歷文件的內容。

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

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國