在 Python 中读写列表到文件

2024 年 8 月 29 日 | 5 分钟阅读

在本教程中,我们将学习如何使用 Python 在文件中读取和写入列表。众所周知,Python 使用列表来存储各种类型的数据,并且它是可变的。为了持久地存储数据,我们需要存储文件或数据库才能正常工作。

Python 编程语言提供了 write()read() 方法来读写文件。这些方法最适合单行。readlines() 和 writelines() 方法用于处理多个文件。

使用 read() 和 write() 方法

read() 和 write() 方法可以非常有效地处理字符(字符串)。让我们通过以下示例来理解,我们将列表逐行写入文件。

示例 -

列表项通过换行符“\n”扩展,然后我们将其存储到输出文件中。现在,让我们将整个列表从文件 newfile.txt 读取回内存。

示例 -

在这里,我们需要删除字符串末尾的换行符。这有助于我们 Python 允许对字符串进行列表操作。我们可以简单地使用列表索引运算符 [:-1],它会删除末尾的 '\n'。

使用 writelines() 和 readlines() 方法

这些方法分别用于一次性写入和读取多行。让我们将整个列表写入文件。

示例 -

现在使用 readlines() 方法从文件读取列表。

示例 -

上面的代码遵循从其他编程语言借用的传统方法。现在,让我们用 Pythonic 的方式编写代码。

示例 -

在上面的代码中,我们使用 readlines() 方法读取文件内容。其次,在 for 循环中,使用 rstrip() 方法从每一行中删除换行符。然后,我们将列表元素作为新列表项添加到 capitals 列表中。

上面的代码与之前的列表相比更具兼容性。但是,对于初学者 Python 程序员来说,阅读起来可能有些困难。

使用 Joblib 模块

在上面的部分,我们解释了 Python 的常规方法,它以一种人类仍然可以非常字面地读懂的方式将列表元素存储为文件中的顺序列表。这是一种创建易于使用的报告或输出供用户进一步使用的导出文件的简单方法。

但是,如果我们的目标只是将列表序列化到文件中,以后可以加载。那么我们不需要将其存储为人类可读的格式。

Python 提供了 joblib 模块,可以轻松地转储 Python 对象。

示例 -

joblib 模块提供了一种以高效格式序列化对象并以后加载的最简单方法。我们可以使用任何任意格式,例如 .sav、.data 等。这并不重要 - joblib 和 pickle 等替代方法都能很好地读取文件。

使用 Pickle 模块

它是 joblib 的替代品,我们可以使用 pickle 模块及其 dump() 方法将列表有效地存储为二进制数据流。首先,输出文件 newfile.data 以二进制写入模式(“wb”)打开。其次,使用 dump() 方法将列表存储在打开的文件中。让我们通过以下示例来理解。

示例 -

在下一步中,我们通过以读取模式('rb')打开文件来从文件中读取列表。其次,使用 load() 方法从文件中加载 capitals 列表。

示例 -

我们提到了两个示例来演示字符串的使用。尽管如此,pickle 可以处理所有类型的 Python 对象,例如字符串、整数和其他内置数据结构。

使用 Json 格式

JSON 代表 JavaScript Object Notation,它是程序之间互操作性的流行格式。它提供了易于使用且人类可读的模式,因此在序列化文件和通过 API 共享它们方面非常受欢迎。

让我们理解下面的例子。

示例 -

在上面的代码中,我们使用 json 模块将各种类型的元素的列表初始化为输出。我们将文件以写入模式打开,然后使用 dump() 方法将列表以 JSON 格式存储。

现在,让我们在以下示例中读取 JSON 数据。

示例 -

结论

本教程包含了各种读写数据的方法,我们还讨论了使用 pickle 和 JSON 通过二进制流进行转储/加载数据。这简化了将列表持久存储并将其读回内存的过程。