一、文件的初步认识
1.文件是什么东西?
1.1操作系统为用户或者应用程序提供了一个可读写硬盘的虚拟单位,该虚拟单位就是指文件。
1.2文件的核心操作:读和写;即当我们需要对文件进行读写操作时,就是对操作系统发起请求,然后由操作系统将将用户或者应用程序对文件的读写操作转换成具体的硬盘指令(比如控制硬盘的盘片转动,控制机械手臂来读写数据)
2.文件是为什么产生的?
对于内存来说,无法永久保存数据,只要我们想要永久的存储数据,都需要将数据保存到硬盘中,而操作文件就可以实现对硬件的操作。
3.文件该怎么使用?
3.1 将内存中的临时数据永久存储到硬盘中去
name="one piece" #定义变量就是将要储存的数据从内存中存储到硬盘中去
3.2 那么如何把硬盘当中的数据读到内存中去呢?
初步涉及到对文件的基本操作:
# r:rawstring:原生字符 f=open(r"文件路径.txt"mode="r") #向操作系统发起请求,要求操作系统打开文件,占用 #操作系统的资源 data=f.read() #向操作系统申请读文件的请求,会被操作系统转成具体的硬盘操作, #将内容由硬盘读入内存 print(data) f.close() #向操作系统发起请求,要求操作系统关闭文件,回收系统资源
3.3 文件操作小结:3.3.1 打开需要操作的文件
3.3.2 读写文件
3.3.3 关闭该文件
⭐ ⭐ ⭐ 知识补充:
绝对路径:从盘符(C:\E:\D:\)开始写一个完整的路径
相对路径:相对于当前执行文件所在的文件夹开始找
四、文件的具体操作⭐ ⭐ ⭐⭐ ⭐
先知:控制读写文件内容的结果有两种:t模式(text)和b模式(bytes)
注意:A t与b这两种模式均不能单独使用,都需要与r/w/a配合使用
B 默认情况下内容的格式是t
C 只有文本文件才能使用t模式,也只有文本文件才有字符编码的概念
1. 操作文件的基础模式(r/w/a)
1.1 read,只读模式
注意事项:只能读,不能写
在文件不存在时会报错,文件存在的时候会将文件指针移动到开头
1.2 write,只写模式
注意事项:只能写,不能读
在文件不存在时会创建新的空文件,在文件存在时会将文件内容清空并写上需要内容(也可理解成新写的文本内容将旧的文本覆盖了)
1.3 append,只追加写模式
注意事项:只能写,不能读
在文件不存在时会创建新的空文件,在文件存在时会将指针移动到文件末尾(写文本内容时也是从文件末尾开始写入)
2. 二进制模式
注意:二进制一定不能指定字符编码,只有t模式才与字符编码有关
b是二进制模式,这是一种通用的文件读取模式,正常情况下所有的文件在硬盘中都是以二进制的形式存放的
3. 循环读
3.1 文本文件--字符串-读
f=open("文件路径","rt",encoding="utf-8") for line in f : print(line) f.close()
3.2 文本文件--二进制-读
f=open("文件路径","rb") for line in f: print(line) f.close()
3.3 视频文件--二进制-读
f=open("文件路径","rb") for line in f: print(line) f.close()
3.4文本文件--二进制-写
f=open("文件路径","wb") f.write("写入内容".encode("utf-8")) f.close()
3.2 文本文件--二进制-追加写
f=open("文件路径","ab") f.write("追加写内容",encode("utf-8")) f.close()
4 python提供的简便做法
#上下文管理 with open("文件1路径","rb")as f1,open("文件2路径","wt",encoding="utf-8") as f2: src_data=f.read() #文件操作 res=src_data.decode("utf-8") #print(type(res)) f.write(res)
上述做法可简便成
with open("文件1路径","rb")as f1, open("文件2路径","wb")as f2: #文件的操作 f.close()