python中chapter用法_[学习使用Python 3编程的循序渐进的编程指南]学习笔记——Chapter9...

Chapter 9:输入/输出文件

本章讨论文件输入/输出(通常缩写为文件I/O),并涵盖以下主题:

•定义文件的路径

定义:路径是唯一标识计算机上的文件的字符串。(它有时称为filespec,是文件规范的缩写。)

路径是字符串。有两种不同的方式指定路径:绝对路径和相对路径。绝对路径是从计算机上的文件系统顶部开始,以文件名结束的路径。例如,在Windows中,绝对路径可能如下所示:

因为一台计算机上的路径可能与另一台计算机上的路径不匹配,所以大多数使用绝对路径的代码都是不可移植的。因此,在本讨论中,我们将使用相对路径。

相对路径从包含Python源文件的文件夹开始,而不是从计算机上的文件系统顶部开始。我们说该路径是相对于源文件的位置的。这意味着我们要使用或创建的任何文件都驻留在与Python源文件相同的文件夹中,或者位于该文件夹下面的某个文件夹中。

•读取和写入文件

以下是读写文件所需的核心代码。最后,我们将把这段代码包装成函数供您使用。目前,只需注意涉及的基本步骤即可。以下是要从文件中读取/写入的代码:

•Python os软件包

与随机模块提供大量处理随机数的代码相同,还有一个模块提供有关操作系统的信息。它被称为OS模块。要使用它,首先要将其导入:

目前,我们只对一个可以告诉我们文件是否存在的操作感兴趣。以下是它的使用方法:

以下是os模块允许您执行的几项操作:

os.listdir:生成包含目录(文件夹)中条目名称的列表 os.mkdir:创建目录(文件夹) os.rename:重命名文件 os.walk:生成目录(文件夹)中的文件名 os.getcwd:获取当前工作目录(文件夹) os.chmod:更改路径模式

•构建可重用的文件I / O功能

我们现在有足够的信息来构建三个非常有用、高度可重用的函数。我们将构建以下内容:

•fileExists:返回一个布尔值以说明具有给定路径的文件是否存在 •writeFile:获取数据字符串并将其写入具有给定路径的文件中 •readFile:读取文件的内容并将其返回给呼叫者,召集者

•导入自己的文件模块

Version 1

我们还可以使用import语句导入自己的Python文件。如果要构建一个需要读取或写入文件的程序,则可以导入自己的FileReadWrite.py文件。我们可以使用相同的import语句,如下所示:

以这种方式导入后,您可以构造如下这样的行以写入文件:

Version 2

如果使用from语法,则在调用函数时,您将不指定包名称,而仅指定函数名称。优点是简单。例如,如果您要调用readFile,则可以这样编写:

Version 3

星号(*)表示输入该文件的全部内容。例如,要导入FileReadWrite模块并读取文件,我们可以这样编写:

使用from语句导入另一个文件的内容示意图:

如果打算使用外部Python文件中的大部分或全部代码,使用星号将整个文件引入。当导入的Python文件非常大且仅使用少量函数时,应单独命名函数的情况。 就我们的目的而言,使用星号语法是可以的,并确保外部Python文件中的所有函数均可用于我们的代码。通过这种方式构建和使用外部Python文件,程序员可以将大型程序拆分为多个文件。能够导入这些类型的Python源文件的功能使您可以构建可重用代码的文件,并将此代码合并到多个程序中。此外,在像这样的文件中查找和修复错误可以修复导入该文件的每个程序中的错误。

•将数据保存到文件中并读取回去

此程序可供重新加载之前写入文件“Gamedata.txt”中的数据

•Jion功能(一拆多,列表变字符)

让我们从连接函数开始。我们要写入文件的数据必须是一个长文本字符串。如果我们想写出多个数据片段,我们需要构建一个包含所有这些数据片段的字符串。我们将分两步完成此操作:

1.获取我们想要保存的所有数据(将任何数字转换为字符串版本),然后创建包含该数据的列表。 2.将列表组合成一个字符串。

Join函数的目的是获取(字符串)列表并连接所有元素以创建单个长字符串。在生成的字符串中,每段原始数据都由您选择的字符分隔。逗号是用于分隔此类数据的最典型的字符。Join是一个字符串操作,但是它的语法很奇怪。它最常用于赋值语句中,如下所示:

Join获取(字符串)列表,并通过连接列表中的所有元素(由自定义的分隔符分隔)来创建一个新字符串。下面是一个例子:

•Split功能(多拆一,字符变列表)

另一个内置函数是Split函数,它获取一个字符串,并在找到给定分隔符的每个点将其拆分成列表中的多个数据片段。拆分通常用于赋值语句中,如下所示:

示例如下:

Jion函数和Split函数的区别

由于语法原因,Split和Join都被视为字符串操作。Join操作分隔符,而Split操作要拆分的字符串。但这些操作执行的是互补或相反的操作。可以这样想:向Join传递一个列表并生成一个字符串,而Split获取一个字符串并生成一个列表。JOIN通常用于写出文件,而SPLIT通常用于从文件读入数据。

summary

在本章中,您学习了如何写入和读取文件。若要使用文件,必须首先通过将其路径指定为字符串来标识要使用的文件。读取或写入文件涉及三个步骤:打开文件、读取或写入文件以及关闭文件。每当您以编程方式打开文件时,操作系统都会返回一个文件句柄,您可以在后续调用中使用该句柄来写入或读取数据。完成后,必须再次使用文件句柄关闭该文件。您已经看到,Python的内置os包包含许多有用的操作系统函数。 然后,我们构建了一组三个可重用的函数:fileExists、writeFile和readFile。在给定这些函数的情况下,我们构建了一个小示例,该示例使用这些函数将文本字符串写入文件并将其读回。为了使函数真正可重用,我们学习了如何将函数保存在单独的Python源文件中,并使用IMPORT语句将外部文件引入我们的代码中。 然后,我们构建了一个简单的儿童添加程序的四个版本。最终版本能够通过写出和读回程序使用的多条数据来保存其状态。这使得程序可以从用户停止的地方重新开始。在内部,我们使用了两个新函数:Join(在写入文件之前将数据组合成单个字符串)和Split(从文件读回数据并将其拆分成原始数据)。 我们关于文件I/O的最后一个主题是使用文件一次读写一行数据的能力。尽管我们仍然必须使用打开文件、读取或写入文件和关闭文件这三个步骤,但是我们为这三个步骤构建了一组函数。您了解了如何使用在后续调用中打开文件时提供的文件句柄来读取单行数据或写入单行数据,然后关闭文件。此技术允许我们使用文本文件读取和写入大量数据。我提供了一个通过将数据移动到文本文件来构建完全独立于内容的通用多项选择测试程序的示例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值