介绍
Python是处理数据的好工具。很可能你编写的任何程序都涉及读取、写入或操作数据。因此,了解如何处理存储不同类型数据的不同文件格式尤其有用。 例如,考虑一个Python程序,它检查用户列表以进行访问控制。您的用户列表可能会存储并保存在文本文件中。也许你不使用文本,而是有一个程序,进行财务分析。为了进行一些数字处理,您可能需要从保存的电子表格中输入这些数字。无论您的应用程序如何,几乎可以确保涉及输入或输出数据。 本教程将简要介绍Python能够处理的一些格式类型。在简要介绍文件格式之后,我们将介绍如何在Python 3中打开,读取和写入文本文件。 完成本教程后,您将能够处理Python中的任何文本文件。先决条件
对于本教程,您应该安装Python 3以及在计算机上设置的本地编程环境。如果不是这样,您可以通过遵循适用于您的操作系统的安装和设置指南来设置:背景
Python是超级包容,可以相对轻松地处理许多不同的文件格式,包括但不限于以下:文件类型 | 描述 |
---|---|
文本 | 纯文本文件存储仅表示字符(或字符串)的数据,并排除任何结构化元数据 |
CSV | 逗号分隔值文件使用逗号(或其他分隔符)来结构存储的数据,从而允许以表格格式保存数据 |
HTML | 超文本标记语言文件存储结构化数据,并且通常用于大多数网站 |
JSON | JavaScript Object Notation是一种简单而高效的格式,使其成为存储和传输数据最常用的格式之一 |
第1步 - 创建文本文件
在我们开始使用Python之前,我们需要确保我们有一个文件可以使用。 要做到这一点,我们将打开一个文本编辑器并创建一个新的txt文件,姑且称之为days.txt
。 在新文件中,输入几行文本。在这个例子中,让我们列出星期:
days.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路径。
files.py
path = '/users/sammy/days.txt'
然后,我们将使用Python
open()
函数打开我们的
days.txt
文件。 在
open()
函数需要作为第一个参数的文件路径。 该函数还允许许多其他参数。 然而,最重要的是可选的
mode参数。 Mode是一个可选字符串,指定打开文件的模式。您选择的模式将取决于您要对文件执行的操作。这里有一些我们的模式选项:
'r'
用于读取'w'
用于写作'x'
用于创建并写入到新的文件'a'
使用附加到文件'r+'
用于读取和写入同一个文件
'r'
模式。 我们将使用
open()
函数打开
days.txt
文件,并将其赋值给变量
days_file
。
files.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步 - 编写文件
在这一步中,我们将编写一个新的文件,包括随后一周的 星期几的标题 天 。 首先,让我们创建我们的title
变量。
files.py
title = 'Days of the Week\n'
我们还需要一周的天存储在一个字符串变量,我们称之为
days
。 为了使其更容易遵循,我们包括上述步骤的代码。 我们打开读取模式文件,读取文件,并从读操作返回输出存储在我们的新变量
days
。
files.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'
指定的模式。
files.py
new_path = '/users/sammy/new_days.txt'
new_days = open(new_path,'w')
重要的是要注意,如果new_days.txt开放其原有的内容将被销毁的文件之前已经存在,使用时要小心
'w'
模式。 一旦我们的新文件被打开,我们可以把数据放入该文件,使用写入操作,
<file>.write()
写操作采用单个参数,该参数必须是字符串,并将该字符串写入文件。如果要在文件中开始新行,则必须显式提供换行符。首先,我们将文件的标题写入文件,然后是星期几。让我们还在一些打印语句中添加我们正在写出的内容,这通常是跟踪脚本进度的好习惯。
files.py
new_days.write(title)
print(title)
new_days.write(days)
print(days)
最后,每当我们完成一个文件,我们需要确保关闭它。我们在最后一步展示这一点。
第5步 - 关闭文件
关闭文件确保磁盘上的文件和文件变量之间的连接完成。关闭文件还确保其他程序能够访问它们,并确保您的数据安全。所以,总是确保关闭您的文件。现在,让我们关闭使用我们所有的文件<file>.close()
函数。
files.py
days_file.close()
new_days.close()
我们现在已经完成在Python中处理文件,并可以继续查看我们的代码。
第6步 - 检查我们的代码
在我们运行我们的代码之前,让我们确保一切都很好。最终产品应该看起来像这样:
files.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
您的文件将看起来相同或类似 - 您已成功完成本教程!