课程首页 › 第13章 › 第64课

第64课 读取文件

第13章 文件的读写· 知识点:文件读写 · 原书 13.4
插图

通过换行符,成功地往文件中写入了换行的多行文字。

这就带领大家一起学习读文件。

读文件之前,首先要做的也是打开文件。

想要打开文件,然后读取文件,就要给Python输入这样的指令:

,''file=open(file r)。r表示我们将以只读方式打开文件。

只读是不能修改文件的。

如果要打开的文件不存在,会抛出错误。我们来看一下是什么错误?

插图
插图

程序运行结果如下:

''FileNotFoundError:[Errno 2]No such file or directory: python1.txt

在程序中,文件python1.txt不存在,程序抛出FileNotFoundError的错误,所以使用r文件访问模式,要保证文件存在。

想要读取文件python.txt的内容,就要给Python输入这样的指令:file.read()。

读文件我们通过file类的read()函数来完成,read()函数可以一次性读取文件中的所有内容。

一起来读取文件python.txt的内容。

插图

程序运行结果如下:

my name is guoguo,

i like python!

在程序中,将文件中的所有内容都读取到内存中了,并且将内容打印出来了。

如果我们想要一次性读取文件的全部内容并且按行存储方便后续的操作,要怎么做呢?

我们可以使用readlines()函数来读取文件内容,readlines()函数可以一次性读取文件的全部内容,但是会将文件内容处理成行的列表,列表里的每个元素就是文件中一行的内容。

插图

程序运行结果如下:

,['my name is guoguo,\n''i like python!\n']

在程序中,我们将file.readlines()读取文件后存储的列表打印在屏幕上,可以很直观地看到运行结果是一个列表结构:

,['my name is guoguo,\n''i like python!\n']

列表中包括两个元素,分别为:

插图

说的很对,接下来我们使用列表的遍历来打印文件的内容。

插图

程序运行结果如下:

my name is guoguo,

i like python!

我们写入的内容是:

插图

但是读取的内容是:

插图

用你的火眼金睛仔细看看,能看出来有什么不同吗?原来是每一行后面都多了一行。

插图

这是为什么呢?

原因是读入的时候,将末尾的换行符\n读进来了,需要将它去掉。

插图

程序运行结果如下:

my name is guoguo,