文章目录
一. 什么是文件
数据因为表现形式的不同会被划分成各种各样的文件:
- 电影(.mp4)
- 歌曲(.mp3)
- 图片(.jpg)
- 文本(.txt)
- 表格(.xlsx)
我们知道冯诺依曼体系结构包括:输入输出设备、存储器、运算器和处理器。其中存储器的存储体系又分为内存和硬盘:
- 内存:变量就是存储在内存中
- 硬盘:文件就是存储在硬盘中
对比内存和硬盘:
- 内存的空间更小,硬盘的空间更大
- 内存访问更快,硬盘访问更慢
- 内存成本更高,硬盘成本更低
- 内存的数据易丢失,硬盘的数据能持久化存储
我们电脑中C盘、D盘的内容都是硬盘上的内容,也都是文件:
二. 文件路径
文件夹也叫目录,它也属于文件。我们把一层层目录构成的字符串称为“文件的路径”,比如在我的电脑中QQ可执行程序的路径就是:C:\Program Files (x86)\Tencent\QQ\Bin
文件路径可以视为是文件在硬盘上的身份标识,每个文件对应的路径都是唯一的。知道了文件路径,就可以知道这个文件在硬盘上的详细位置;也就可以进一步的知道这个文件里面都有些什么。
补充说明
目录名之间,使用反斜杠 \ 来分隔,其实使用斜杆 / 也可以。前者 Windows 用的更多,在其他系统中更多的是使用斜杆来分隔,因为反斜杠在字符串中有特殊的含义,它可以表示转意。
三. 打开文件
创建一个文档文件 test.txt 用来测试:
在 Python 中打开文件使用open
函数:
f = open('C:/Users/86158/Downloads/Python/test.txt', 'r')
print(f)
print(type(f))
-------运行结果-------
# 包含文件的路径、打开方式、编码方式这三个信息
<_io.TextIOWrapper name='C:/Users/86158/Downloads/Python/test.txt' mode='r' encoding='cp936'>
# Python内部给文件对象起的名字
<class '_io.TextIOWrapper'>
open 函数解析
补充说明
1)被打开的文件必须存在于给出的路径下,不然会抛异常
2)文件对象是个句柄
open 的返回值是一个文件对象,如何理解?
- 文件的内容,是存储在硬盘上的。
- 文件对象,是内存上的一个变量。后续对文件的读写,都是通过这个文件对象来进行操作的。
文件对象就像一个遥控器,而文件就好像一台电视机。我们要操作电视机(开关、调台、调音量),可以直接去按电视机上的按键,但是这样太麻烦了,我们通常是躺在沙发上通过遥控器来操作;类比文件,我们可直接去硬盘上去对文件进行读写等操作,同样为了方便我们更多的是通过文件对象去完成这些操作。
在计算机中,也把这样的远程操控的“遥控器”称为“句柄”。
四. 关闭文件
使用close
方法关闭已经打开的文件:
f.close()
文件在打开、使用完了之后一定要关闭!
打开文件,其实是在申请一定的系统资源,不再使用文件的时候,资源就该及时释放;否则就可能造成文件资源泄露,进一步导致其他部分的代码无法顺利打开文件。
正是因为一个系统的资源是有限的,因此一个程序能打开的文件个数也是有上限的,通过下面代码测试
# 1、创建一个列表,用来存储文件对象
fList = [