1.文件介绍
- 文件:数据存放的容器
- 文件的作用:持久化的存储数据内容
- 文件组成:
- 文件名:如果同级目录下,不允许同名文件存在
- 扩展名 :一般不同的扩展名,对应着不同的文件格式,不同的文件格式,有着不同的存储约定,方便程序处理。
- 文件内容:一般分为 文本文件(txt,doc,xls) 二进制文件(图片,视频,音乐)
2.文件的使用流程
- 打开
- open("文件",“模式”)
- 文件:指定文件路径
- 模式:控制操作模式
- r 以只读方式打开文件
- 这个是默认参数 文件的指针将会放在文件的开头
- 注意:文件不存在,会报错
- w 以只写方式打开文件
- 文件的指针将会放在文件的开头,所以,写入心得内容,会覆盖旧的内容
- 注意:文件不存在,会自动创建一个新文件
- a 以追加方式(只写)打开文件
- 文件的指针将会放在文件的结尾,所以,写入的内容,会增加到文件末尾
- 注意:文件不存在,会自动创建一个新文件
- 增加b 以为二进制格式进行操作文件读写
- rb wb ab
- 如果文件是二进制文件,则选择此项 例如:图片 视频 音频
- 增加+ 代表都是以“读写模式”进行打开
#r 的读操作
#1. 打开文件
#相对路径,相对于哪一个目录下面的指定文件
f = open.("a.txt","r")
#2. 读操作
content = f.read()
print(content)
#3. 关闭文件
f.close()
#w 的写操作
#1. 打开文件
#相对路径,相对于哪一个目录下面的指定文件
f = open.("a.txt","w")
#2. 读操作
f.write("123456")
print(content)
#3. 关闭文件
f.close()
#wb 的写操作
#1. 打开文件
#相对路径,相对于哪一个目录下面的指定文件
toFile = open.("xx.jpg","wb")
#2. 读操作
content = fromContent[0:len(fromContent)//2]
toFile.write(content)
#3. 关闭文件
toFile.close()
- 读写
- 定位
- f.seek(偏移量,[0,1,2])
- [0,1,2]
- 0 代表开头 也是默认
- 1 代表当前位置
- 2 代表文件末尾
- 注意:文本文件的操作模式下(不带b),只能写0 。如果想要写1或者2,必须在二进制文件操作模式下(带b)
- f.tell( ) 输出文件指针在哪里
- 读
- f.read(字节数) 从当前文件指针的位置一直读到最后
- 字节数:代表读取文件内容长度。默认是文件全部内容
- 下标会自动后移
- f.readline([limit]) 读取一行数据
- f.readlines()
- 会自动的将文字按换行符进行处理,将处理好的每一行组成一个列表返回
- for in
- 判断是否可读
- 注意
- 一般文件特别大的时候,可以使用readline方法。按行加载,可节省内存,但相比于其他两个读取方法,性能较低
- read和readline([limit]),一次性读取文件索引内容,占用内存,处理性能高
- 写
- f.write("内容")
- f.writeable()
#定位案例
#1. 打开文件
f = open.("a.txt","r") #a.txt的内容是 123456789
#2. 读操作
print(f.tell())#输出 0
f.seek(2)
print(f.tell())#输出 2
print(f.read())#输出时 3456789
print(f.tell())#输出
#3. 关闭文件
f.close()
#for in案例
#方式一
f = open.("a.txt","r")
#a.txt的内容是
#1
#2
#3
for i in f:
print(i,end="")
#1
#2
#3
f.close()
#方式二
f = open.("a.txt","r")
content = f.readlines()
for i in content:
print(i,end="")
f.close()
- 关闭
- f.close()
- 关闭一个打开的文件
- 关闭的原因
- 可以释放系统资源
- 会立即清空缓冲区的数据内容到磁盘空间
- f.flush()
3.文件的相关操作
- 模块 import OS
- 操作
- 重命名
- os.rename("原文件名/原文件夹名",“目标文件名/目标文件夹名”)
- os.renames(“ 路径 ”,“路径”)
- #重命名
import os
os.rename("a.txt","b.txt")#把文件a.txt重命名为b.txt
os.rename("first","onr")#把文件夹first重名名为one
os.renames("one/one.txt","first/first.txt")#把one文件夹和one文件夹下的one文件,修改为first文件夹和first文件夹下的first.txt文件 - 删除
- 删除文件
- 文件不存在就会报错
- 删除目录
- os.removedirs(path)
- 可以递归的删除目录,如果文件夹非空,会报错
- 创建文件夹
- os.mkdir(“文件夹名称”,[mode])
- 不能递归创建,如果文件夹存在就会报错
- mode 数字模式权限
- 获取当前目录
- 改变默认目录
- 获取目录内容列表
- os.listdir(“./”)
- os.listdir(“文件夹名”) 输出一个列表 列表内为文件名