如何用Python处理数据文件?

121 阅读4分钟

有些数据是临时性的,在应用程序运行时存储在RAM中,然后就被遗忘。然而,有些数据则是持久性的。它被存储在硬盘上供以后使用,而且它往往是用户最关心的东西。对于程序员来说,编写代码来读写文件是非常常见的,但每种语言处理这项任务的方式都有些不同。这篇文章演示了如何用Python处理数据文件。

安装Python

在 Linux 上,你可能已经安装了 Python。如果没有,你可以从你的发行版的软件库中安装它。例如,在 CentOS Stream 或 RHEL 上。

$ sudo dnf install python3

在 macOS 上,你可以从MacPortsHomebrew 安装 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 并没有什么特别之处;它只是表示 "文件 "这个词的最短方式,所以它往往被 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数据库,以及许多库来处理任何数量的文件格式,包括图形、音频、视频等等。