在 Python 中將陣列寫入文字檔案

Isaac Tony 2023年1月30日
  1. 在 Python 中使用 open()close() 函式將陣列寫入文字檔案
  2. 在 Python 中使用內容管理器將陣列寫入文字檔案
在 Python 中將陣列寫入文字檔案

讀取和寫入檔案是構建許多使用者使用的程式的一個重要方面。Python 提供了一系列可用於資源處理的方法。這些方法可能會略有不同,具體取決於檔案的格式和正在執行的操作。

除了通過單擊按鈕建立檔案的傳統方式外,我們還可以使用內建函式(例如 open() 函式)建立檔案。請注意,open() 函式只會在檔案不存在時建立檔案;否則,它本質上用於開啟檔案。

在 Python 中使用 open()close() 函式將陣列寫入文字檔案

由於 open() 函式不單獨使用,將它與其他函式結合使用,我們可以執行更多的檔案操作,例如寫入和修改或覆蓋檔案。這些函式包括 write()close() 職能。使用這些函式,我們將使用 NumPy 建立一個陣列,並使用 write 函式將其寫入文字檔案,如下面的程式所示。

import numpy as np

sample_list = [23, 22, 24, 25]
new_array = np.array(sample_list)

# Displaying the array

file = open("sample.txt", "w+")

# Saving the array in a text file
content = str(new_array)
file.write(content)
file.close()

# Displaying the contents of the text file
file = open("sample.txt", "r")
content = file.read()

print("Array contents in sample.txt: ", content)
file.close()

輸出:

Array contents in text_sample.txt:  [23 22 24 25]

在上面的示例中,我們在寫入模式下使用 open 函式建立了一個名為 sample.txt 的文字檔案。然後,我們繼續將陣列轉換為字串格式,然後使用 write 函式將其內容寫入文字檔案。使用 open() 函式,我們以閱讀模式開啟文字檔案的內容。文字檔案內容顯示在終端中,也可以通過物理開啟文字檔案來檢視。

同樣,我們也可以建立一個多維陣列,儲存到一個文字檔案中,如下圖。

import numpy as np

sample_list = [[23, 22, 24, 25], [13, 14, 15, 19]]
new_array = np.array(sample_list)

# Displaying the array

file = open("sample.txt", "w+")

# Saving the array in a text file
content = str(new_array)
file.write(content)
file.close()

# Displaying the contents of the text file
file = open("sample.txt", "r")
content = file.read()

print("Array contents in sample.txt: ", content)
file.close()

輸出:

Array contents in sample.txt:  [[23 22 24 25]
[13 14 15 19]]

在 Python 中使用內容管理器將陣列寫入文字檔案

或者,我們可以使用上下文管理器將陣列寫入文字檔案。與 open() 函式不同,我們必須在使用 close() 函式開啟檔案後關閉檔案,內容管理器允許我們在需要時精確地開啟和關閉檔案。在 Python 中,在管理資源而不是使用 open()close() 函式時,使用上下文管理器被認為是一種更好的做法。上下文管理器可以使用如下所示的 with 關鍵字來實現。

import numpy as np

new_list = [23, 25, 27, 29, 30]
new_array = np.array(new_list)
print(new_array)

with open("sample.txt", "w+") as f:
    data = f.read()
    f.write(str(new_array))

輸出:

[23 25 27 29 30]

在上面的示例中,上下文管理器開啟文字檔案 sample.txt,由於該檔案不存在,上下文管理器建立它。在上下文管理器的範圍內,我們在將陣列轉換為字串時將其寫入文字檔案。一旦我們選擇退出縮排,上下文管理器會自動關閉檔案。同樣,如下所示,我們也可以使用上下文管理器將多維陣列寫入文字檔案。

import numpy as np

new_list = [[23, 25, 27, 29], [30, 31, 32, 34]]
new_array = np.array(new_list)
print(new_array)

with open("sample.txt", "w+") as f:
    data = f.read()
    f.write(str(new_array))

輸出:

[[23 25 27 29]
[30 31 32 34]]

NumPy 是一個科學庫,它提供了一系列用於處理陣列的函式。我們可以使用 numpy.savetxt() 函式將陣列儲存到文字檔案中。該函式接受幾個引數,包括檔名、格式、編碼格式、分隔列的分隔符、頁首、頁尾和檔案隨附的註釋。

除此之外,NumPy 函式還提供 numpy.loadtxt() 函式來載入文字檔案。

我們可以將陣列儲存到文字檔案並使用這兩個函式載入它,如下面的程式碼所示。

import numpy as np

new_list = [23, 24, 25, 26, 28]
new_array = np.array(new_list)
print(new_array)

np.savetxt("sample.txt", new_array, delimiter=", ")

content = np.loadtxt("sample.txt")
print(content)

輸出:

[23 24 25 26 28]

如下圖,我們也可以使用這些函式將多維陣列儲存到文字檔案中。

import numpy as np

new_list = [[23, 24, 25, 26, 28], [34, 45, 46, 49, 48]]
new_array = np.array(new_list)
print(new_array)

np.savetxt("sample7.txt", new_array, delimiter=", ")

content = np.loadtxt("sample7.txt")
print(content)

輸出:

[[23 24 25 26 28]
 [34 45 46 49 48]]
作者: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn

相關文章 - Python Array