第63课 什么是文件

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

