在 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 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