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

第63课 什么是文件

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

文件是指存储在存储设备中的一段数据流,存储设备包括硬盘和计算机内存,它就像我们大脑中负责记忆的部分,用来记录数据。文件可以存储不同用途的数据,从而形成很多类型的文件,包括文本、图片、Python程序等。

我们可以根据文件的属性来区分文件,下面一起来认识一下文件的重要属性吧。

插图

·文件的名称:就像人的名字一样,我们可以给文件取一个名字,例如:

插图

这是一个图片文件,我取的名字是我可爱的老师。

·文件的扩展名:也就是文件名称的后缀,通过文件的扩展名,我们能识别文件存储的数据类型。

◇.txt是文本文件。

◇.py是Python程序。

◇.mp3是音频文件。

◇.mp4是视频文件。

◇.png是图片文件。

◇.sb2是Scratch文件。

◇.docx是Word文件。

插图

文件的位置:就像妈妈要找小明给他送衣服,首先要知道小明在哪·里,才能找到小明。位置就是能找到文件的地方,专业术语就是文件的路径。路径在前一个章节中学习过。

插图

系统Windows

在C盘里创建一个文件夹,并且命名为Python。然后将文件test.py放在文件夹Python里。

要查找test.py,可以通过C:\python\test.py路径来查找。

盘文件夹文件C→Python→test.py

系统macOS

如果在桌面上创建一个文件夹叫作Python,然后将test.txt放置在Python文件夹中,想要找到test.txt文件,可以通过Desktop/python/test.txt路径来查找test.txt文件。

桌面文件夹文件

→Python→test.txt

·文件的大小:指文件占据了多大的存储空间。

现在大家买手机的时候非常看重手机存储空间的大小,是64GB还是128GB?这里的64GB和128GB其实就是在说手机存储空间的大小。

前面我们说文件是保存在存储设备中的,那么就要占据存储设备的空间。空间如果用完了,就需要删除一些没用的文件来把它们占用的空间释放出来,这也是手机存储空间不足的原因。所以说文件的大小也是文件很重要的一个属性。

选中文件,右击就可以查看文件的详细信息,包括文件的名字、扩展名、大小。一起来看在Windows系统和macOS系统中怎么查看文件的名字、属性和大小。

系统Windows

选中文件,右击。

插图

单击属性,就可以查看文件的各种属性了。

插图

系统macOS

选中文件,右击。

插图
插图

选中显示简介,就可以查看文件的属性了。

插图

文件不仅具有属性,我们还可以操作它。

如果是Word文件,可以进行的操作有新建文档、打开文档、在文档中增加或者删除内容、从文档中读取内容、关闭文档、对文档重命名、删除文档、恢复文档等。

这些操作都可以通过Python来实现,Python提供了file对象来对文件进行操作。

一起来试试吧。

打开文件

对文件进行操作的时候,首先需要打开文件。

如果我们要打开的文件不存在,是否会出现错误呢?

Python的file对象提供了方法打开文件,如果发现文件不存在,就会创建新的文件。

想要打开文件python.txt,就要给Python输入这样的指令:

插图
插图

其实现在我们还没有创建python.txt文件呢,通过这行代码,Python帮助我们创建了一个全新的python.txt文件。

使用file对象的open()函数打开python.txt文件,但是python.txt文件不存在,所以帮我们创建了新的python.txt文件。

在open()函数中有两个参数,第一个是我们需要打开的文件名称,第二个是我们需要对文件进行的操作。

我们使用的是w+,表示对文件进行读写操作;r代表的是read,表示对文件进行只读操作;w表示对文件进行写入操作;a表示对文件进行追加内容操作。

创建并打开了文件,接下来我们来给文件写入新的内容。

写入内容

想要给文件python.txt写入内容,就要给Python输入这样的指令:

插图

接下来带领大家给文件写入内容:

插图

依次单击菜单栏Run→Run Module选项来运行程序,运行结果如下:

·在当前程序的目录下创建了python.txt文件。

插图

·单击python.txt以打开该文件,发现写入成功。

插图

因为在程序执行过程中可能会出现错误,为了保证程序正常执行并能正确地关闭文件,所以需要用到try…finally。

插图

但是每次都要加上try…finally,代码很烦琐,Python提供了with表达式来简化,保证在对文件进行操作的过程中,都能保证with语句执行完之后关闭文件句柄。

插图

程序执行效果和前面是一样的,往python.txt文件中写入了i like python。

大家会发现,无论执行多少次程序,文件中的内容都只有一行:i like python。这是因为文件的访问模式设置的是w,它会把原本的文件内容清空,然后用新的内容覆盖。

如果我们想往文件中追加内容,要怎么做呢?

追加内容

既然和设置的访问模式相关,如果要往文件中追加内容,则需要修改访问模式。

因为访问模式为a,是对文件进行追加内容操作。我们修改访问模式为a来看看效果。

插图

多次运行程序,运行后查看pyhton.txt。

插图

在程序中,将访问模式改成了a。运行程序,在文件的最后追加了设置的内容。再执行一次程序,会在文件的末尾再次追加相同的内容。

插图

要让文件内容换行,就要用到换行符\n。

插图

运行程序前,将python.txt中的内容清空。

运行两次程序,打开python.txt查看内容追加的效果。

插图

使用换行符\n之后,追加的内容都换行写入文件中了。

插图

小朋友真聪明,当然是可以的。我们来尝试一下。文件写入的内容为:

,my name is guoguo

!i like python

开动脑筋想想,程序要怎么写?

插图

运行程序,查看python.txt文件的内容: