有些数据是临时的,在应用程序运行时存储在 RAM 中,然后被遗忘。然而,有些数据是持久性的。它存储在硬盘驱动器上以供以后使用,并且通常是用户最关心的东西。对于程序员来说,编写代码来读取和写入文件非常常见,但是每种语言处理此任务的方式都略有不同。本文演示了如何使用 Python 处理数据文件。
安装 Python
在 Linux 上,您可能已经安装了 Python。如果未安装,则可以从发行版的软件存储库中安装它。例如,在 CentOS Stream 或 RHEL 上
$ sudo dnf install python3
在 macOS 上,您可以从 MacPorts 或 Homebrew 安装 Python。在 Windows 上,您可以从 Chocolatey 安装 Python。
安装 Python 后,打开您喜欢的文本编辑器并准备开始编码。
使用 Python 将数据写入文件
如果您需要将数据写入文件,则需要记住三个步骤
- 打开
- 写入
- 关闭
这与您在计算机上编写代码、编辑照片或执行几乎任何操作时使用的步骤顺序完全相同。首先,您打开要编辑的文档,然后进行一些编辑,然后关闭文档。
在 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 从文件中读取数据
如果您(或您的用户,通过您的应用程序)已将数据放入文件中,并且您的代码需要检索它,则您需要读取文件。与写入类似,逻辑是
- 打开
- 读取
- 关闭
同样,此逻辑流程反映了您已经从使用计算机(或平装书)中了解到的知识。要阅读文档,您需要打开它,阅读它,然后关闭它。在计算机术语中,“打开”文件意味着将其加载到内存中。
在实践中,文本文件包含多行。例如,您的代码可能需要读取配置文件、保存的游戏数据或您的乐队的下一首歌曲的歌词。正如您不会在打开物理书的那一刻就阅读整本书一样,您的代码必须解析已加载到内存中的文件。因此,您可能需要迭代文件的内容。
f = open('example.tmp', 'r')
for line in f:
print(line)
f.close()
在此示例代码的第一行中,您以读取模式打开文件。该文件由变量 f
表示,但是就像您打开文件进行写入时一样,变量名是任意的。f
没有任何特殊之处;它只是表示“file”一词的最短可能方式,因此 Python 程序员倾向于大量使用它。
在第二行中,您保留 line
,这是另一个任意变量名,用于表示 f
的每一行。这告诉 Python 逐行迭代文件的内容,并将每一行打印到您的输出(在本例中为终端或 IDLE)。
使用“with”语法读取文件
与写入数据一样,有一种使用 with 语法从文件中读取数据的更短方法。这不需要您调用 call() 函数,因此对于快速交互来说可能很方便。
with open('example.txt', 'r') as f:
for line in f:
print(line)
文件和 Python
还有更多使用 Python 将数据写入文件的方法,以及许多使用 JSON、YAML、TOML 等格式化写入文件的文本的方法。还有一种非常好的内置方法来创建和维护 SQLite 数据库,以及许多库来处理任意数量的文件格式,包括 图形、音频、视频等。
2 条评论