在 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