python中使用文件的介绍:
- 计算机系统分为:计算机硬件,操作系统,应用程序三部分。
- 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序是无法直接操作硬件的,这就用到了操作系统。操作系统把复杂的硬件操作封装成简单的接口给用户/应用程序使用,其中文件就是操作系统提供给应用程序来操作硬盘虚拟概念,用户或应用程序通过操作文件,可以将自己的数据永久保存下来。
有了文件的概念,我们无需再去考虑操作硬盘的细节
- 文件系统操作三步曲:打开(open)–>操作–>关闭(close)
1.文件的打开
-
规范起见:在打开文件后,就先将关闭代码跟随写好,之后再进行操作
-
如果读取的是 图片 音频 视频(非纯文本文件)需要通过二进制的方式读取和写入
(1)读取纯文本文件(txt)
r r+ w w+ a a+ = rt rt+ wt wt+ at at+
(2)读取二进制文件
rb rb+ wb wb+ ab ab+
1.1文本文件文件打开的模式
(1)r
- 默认模式,readonly只可读,不可写;
- 读到不存在的文件,会报错
(2)w
-
可写模式,不可读,可写;
-
打开存在文件时,清空原文件,并再写入
-
打开不存在的文件,会新建文件并写入内容
(3)a
- 追加模式,writeonly,只可写,不可读
- 打开存在文件时,将要写入内容追加到原文
- 打开不存在文件时,会新建一个文件并写入内容
(4)r+
- 可读可写
- 不会清空原文件(这点与a相似)
- 打开不存在的文件时,会报错
(5)w+
- 可读可写
- 打开已存在文件时会清空文件,所以相当于也读不到内容
- 打开不存在的文件时,会新建文件并写入内容
(6)a+
- 追加模式 可读 可写
- 打开存在文件时,将追加内容追加至源文件
- 打开不存在文件时,新建文件,并将追加内容写入新文件
1.2 二进制文件打开模式
rb rb+ wb wb+ ab ab+
各种模式的用法其实与文本文件读取模式一致(可参考上述模式)
2.对文件的操作
2.1文件指针
文件 有文件指针;随着操作的执行,文件指针会发生变化;
执行两次读操作时,按照常理来说,应该会显示两个内容,但运行结果可以看到只读取了一遍文件内容,原因是文件指针的存在,文件指针随着我们的操作而移动,执行到哪里,指针移动到哪里。
当执行第一个读取操作时,指针移动到了内容末尾,再次执行读操作,指针后无内容,显示为空,所以我们只看到一遍文件内容。
2.2对纯文本文件的操作
(1) 读取文件 f.read()
(2) 按行读取文件 f.readline()
readline()读取结果会换行 只读取一行
(3) 按行读取文件,返回列表 f.readlines()
readlines()返回内容不换行,而是一行形成一个元素最后形成一个列表返回
(4) 按字节读取文件 f.read(n)
(5)写文件 f.write()
(6)判断文件对象是否可读 f.readable()
(7)判断文件对象是否可写 f.writeable()
(8)文件指针所在位置 f.tell()
(9)文件指针的移动f.seek(x,y)
系统执行时先看第二个参数,后看第一个参数
- x第一个参数:偏移量
>0 向后移动 <0 向前移动 - y第二个参数:移动开始的位置 y只能从集合{0,1,2}中取值
0 文件开头 1 当前位置 2 文件末尾
2.3 对二进制文件的操作
(1)读取二进制文件(图片为例)f.read()
读取二进制文件,运行结果返回的是内存地址空间
(2)对二进制文件的复制(写入)