如何在Python3中处理纯文本文件
介绍
Python是处理数据的好工具。 您编写的任何程序都可能涉及读取、写入或操作数据。 因此,了解如何处理存储不同类型数据的不同文件格式尤其有用。
例如,考虑一个 Python 程序,它检查用户的 list 以进行访问控制。 您的用户列表可能会存储并保存在文本文件中。 也许您没有使用文本,而是有一个进行财务分析的程序。 为了进行一些数字运算,您可能必须从保存的电子表格中输入这些数字。 无论您的应用程序如何,几乎可以保证会涉及到输入或输出数据。
本教程将简要介绍 Python 能够处理的一些格式类型。 在简要介绍了文件格式之后,我们将介绍如何在 Python 3 中打开、读取和写入文本文件。
完成本教程后,您将能够在 Python 中处理任何文本文件。
先决条件
对于本教程,您应该安装 Python 3 并在您的计算机上设置本地编程环境。 如果不是这种情况,您可以按照适合您的操作系统的安装和设置指南进行设置:
背景
Python 非常灵活,可以相对轻松地处理许多不同的文件格式,包括但不限于以下内容:
文件类型 | 描述 |
---|---|
文本文件 | 纯文本文件存储仅表示字符(或 字符串 )的数据,并排除任何结构化元数据 |
CSV | 逗号分隔值文件使用逗号(或其他分隔符)来构造存储的数据,允许以表格格式保存数据 |
HTML | 超文本标记语言文件存储结构化数据,通常用于大多数网站 |
JSON | JavaScript Object Notation 是一种简单高效的格式,使其成为存储和传输数据最常用的格式之一 |
本教程将重点介绍 txt 文件格式。
第 1 步 — 创建文本文件
在我们开始使用 Python 之前,我们需要确保我们有一个可以使用的文件。 为此,我们将打开一个文本编辑器并创建一个新的 txt 文件,我们将其命名为 days.txt
。
在新文件中,输入几行文本。 在此示例中,让我们列出一周中的日期:
天.txt
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
接下来,保存您的文件并确保您知道将其放置在何处。 在我们的示例中,我们的用户 sammy 将文件保存在此处:/users/sammy/days.txt
。 这在后面的步骤中非常重要,我们在 Python 中打开文件。
现在我们有一个 txt 文件要处理,我们可以开始我们的代码了!
第 2 步 — 打开文件
在我们编写程序之前,我们必须创建一个 Python 编程文件,所以用你的文本编辑器创建文件 files.py
。 为方便起见,请将其保存在与我们的 days.txt
文件相同的目录中:/users/sammy/
。
要在 Python 中打开文件,我们首先需要某种方法将磁盘上的文件与 Python 中的 变量 相关联。 这个过程称为打开一个文件。 我们首先告诉 Python 文件在哪里。 文件的位置通常称为文件 路径 。 为了让 Python 打开你的文件,它需要路径。 我们的 days.txt
文件的路径是:/users/sammy/days.txt
。 在 Python 中,我们将创建一个字符串变量来存储这些信息。 在我们的 files.py
脚本中,我们将创建 path
变量并将变量设置为 days.txt 路径。
文件.py
path = '/users/sammy/days.txt'
然后我们将使用 Python 的 open()
函数打开我们的 days.txt
文件。 open()
函数需要文件路径作为其第一个参数。 该函数还允许许多其他参数。 但是,最重要的是可选的 mode 参数。 Mode 是一个可选字符串,它指定打开文件的模式。 您选择的模式取决于您希望对文件执行的操作。 以下是我们的一些模式选项:
'r'
: 用于读取'w'
: 用于写入'x'
:用于创建和写入新文件'a'
:用于附加到文件'r+'
: 用于读取和写入同一个文件
在这个例子中,我们只想从文件中读取,所以我们将使用 'r'
模式。 我们将使用 open()
函数打开 days.txt
文件并将其分配给变量 days_file
。
文件.py
days_file = open(path,'r')
打开文件后,我们可以从中读取,这将在下一步中进行。
第 3 步 — 读取文件
由于我们的文件已经打开,我们现在可以操作它(即 从中读取)通过我们分配给它的变量。 Python 提供了三个相关的操作来从文件中读取信息。 我们将展示如何使用所有三个操作作为示例,您可以尝试了解它们的工作原理。
第一个操作 <file>.read()
将文件的全部内容作为单个字符串返回。
days_file.read()
Output'Monday\nTuesday\nWednesday\nThursday\nFriday\nSaturday\nSunday\n'
第二个操作 <file>.readline()
返回文件的下一行,返回直到并包括下一个换行符的文本。 更简单地说,此操作将逐行读取文件。
days_file.readline()
Output'Monday\n'
因此,一旦您使用 readline 操作读取了一行,它将传递到下一行。 因此,如果您再次调用此操作,它将返回文件中的下一行,如图所示。
days_file.readline()
Output'Tuesday\n'
最后一个操作 <file>.readlines()
返回文件中行的列表,其中列表的每个项目代表一行。
days_file.readlines()
Output['Monday\n', 'Tuesday\n', 'Wednesday\n', 'Thursday\n', 'Friday\n', 'Saturday\n', 'Sunday\n']
从文件中读取时要记住的一点是,一旦使用其中一种读取操作读取了文件,就无法再次读取它。 例如,如果您首先运行 days_file.read()
,然后运行 days_file.readlines()
,则第二个操作将返回一个空字符串。 因此,无论何时您希望从文件中读取数据,您都必须首先打开一个新的文件变量。 现在我们已经从文件中读取了,让我们学习如何写入新文件。
第 4 步 — 编写文件
在这一步中,我们将编写一个新文件,其中包含标题 Days of the Week 和星期几。 首先,让我们创建我们的 title
变量。
文件.py
title = 'Days of the Week\n'
我们还需要将星期几存储在一个字符串变量中,我们将其称为 days
。 为了更容易理解,我们包含了上述步骤中的代码。 我们以读取模式打开文件,读取文件,并将读取操作返回的输出存储在我们的新变量 days
中。
文件.py
path = '/users/sammy/days.txt' days_file = open(path,'r') days = days_file.read()
现在我们有了标题和星期几的变量,我们可以开始写入我们的新文件。 首先,我们需要指定文件的位置。 同样,我们将使用目录 /users/sammy/
。 我们必须指定我们希望创建的新文件。 所以,我们的路径实际上是 /users/sammy/new_days.txt
。 我们在 new_path
变量中提供我们的位置信息。 然后我们以写入模式打开我们的新文件,使用 open()
函数并指定 'w'
模式。
文件.py
new_path = '/users/sammy/new_days.txt' new_days = open(new_path,'w')
需要注意的是,如果 new_days.txt 在打开文件之前已经存在,那么它的旧内容就会被破坏,所以在使用 'w'
模式时要小心。
打开新文件后,我们可以使用写入操作 <file>.write()
将数据放入文件中。 写入操作采用单个参数,该参数必须是字符串,并将该字符串写入文件。 如果要在文件中开始新行,则必须显式提供换行符。 首先,我们将标题写入文件,然后是星期几。 让我们还添加一些我们正在编写的打印语句,这通常是跟踪脚本进度的好习惯。
文件.py
new_days.write(title) print(title) new_days.write(days) print(days)
最后,每当我们完成一个文件时,我们需要确保关闭它。 我们在最后一步中展示了这一点。
第 5 步 — 关闭文件
关闭文件确保磁盘上的文件和文件变量之间的连接完成。 关闭文件还可以确保其他程序能够访问它们并确保您的数据安全。 因此,请始终确保关闭您的文件。 现在,让我们使用 <file>.close()
函数关闭所有文件。
文件.py
days_file.close() new_days.close()
我们现在已经完成了 Python 文件的处理,可以继续查看我们的代码。
第 6 步 — 检查我们的代码
在我们运行我们的代码之前,让我们确保一切看起来都很好。 最终产品应如下所示:
文件.py
path = '/users/sammy/days.txt' days_file = open(path,'r') days = days_file.read() new_path = '/users/sammy/new_days.txt' new_days = open(new_path,'w') title = 'Days of the Week\n' new_days.write(title) print(title) new_days.write(days) print(days) days_file.close() new_days.close()
保存代码后,打开终端并运行 Python 脚本,如下所示:
python files.py
我们的输出应该是这样的:
OutputDays of the Week Monday Tuesday Wednesday Thursday Friday Saturday Sunday
现在,让我们通过打开我们的新文件 (new_days.txt
) 来仔细检查我们的代码是否完全正常工作。 如果一切顺利,当我们打开新文件时,它应该如下所示:
new_days.txt
Days of the Week Monday Tuesday Wednesday Thursday Friday Saturday Sunday
您的文件将看起来相同或相似——您已成功完成本教程!
结论
在本教程中,我们介绍了如何在 Python 3 中处理和操作纯文本文件。 现在您可以在 Python 中打开、读取、写入和关闭文件,并且可以继续在 Python 中处理自己的数据。