文件操作
- 找到文件位置
- 双击打开
- 进行一些操作
- 关闭文件
读操作
文件只能读取一次
注意光标的位置
open()打开 通过python控制操作系统进行打开文件
f=open(“路径”,mode=“模式”,encoding="编码格式")
mode不写默认是r读
f称为文件句柄
file 文件的位置
encoding 文件的编码
f.read()
read全部读取
read(11)按照字符读
readline() 按行读取默认尾部有一个\n
readline().strip() 去掉\n
readlines() 一行一行读取,全部存储在列表中
路径:
- 绝对路径:从磁盘开始查找
- 相对路径:相对于上级文件进行查找
rb 读取字节
在字节操作时不能指定encoding编码
f=open( " ",mode="rb")
f.read() 全部读取
f.read(3) 按照字节读
f.readline()按照行进行行读取
f.readlines()按照行进行行全部读取
r 和rb的区别:
- r需要指定encoding,rb不需要
- r模式中的read(3)按照字符读取,rb模式的read(3)按照字节读取
read 和readlines如果文件太大时,会出现内存溢出
解决方案:
写操作
w操作:清空写 w写文本
- 先清空文件(打开文件的时候)
- 先清空文件(打开文件的时候清空)
- 写入内容
wb操作:清空写 w写字节
a --- 追加写(文本)
r+ 读写(有点用)
先读后写 f=open("密码","r+",encoding="utf-8") print(f.read()) f.write("今天是周一")
w+ 写读(有点用)
f=open("密码","w+",encoding="utf-8") f.write("今天是周一") f.seek(0,0) print(f.read()) 如果光标移动到开头再次添加会覆盖原来的信息 f=open("密码","w+",encoding="utf-8") f.write("今天是周一") f.seek(0,0) f.write("aaaaaa") print(f.read())
a+ 追加读(追加的时候,光标移动到开头,添加时依然是加到后面)
f=open("密码","a+",encoding="utf-8") f.write("今天是周一") f.seek(0,0) f.write("aaaaaa") f.seek(0,0) print(f.read())
其他操作
# seek() 移动光标 # f.seek(0,0) # 移动光标到文件的头部 # f.seek(0,1) # 移动光标到当前位置 # f.seek(0,2) # 移动光标到文件末尾 # f.seek(6) # 光标是按照字节移动 f=open("密码","r",encoding="utf-8") print(f.read(5)) f.seek(0,0) f.seek(0,1) f.seek(0,2) print(f.read()) f=open("密码","r",encoding="utf-8") f.seek(6) print(f.read(3)) f=open("密码","r",encoding="utf-8") print(f.read(3)) print(f.tell()) f.close()
修改文件
# 修改文件: # import os # 操作系统交互的接口 # # f = open('a2',"r",encoding="utf-8") # f1 = open("a1","w",encoding="utf-8") # for i in f: # i = i.replace("日","天") # f1.write(i) # # f.close() # f1.close() # os.remove("a2") # 删除不能找回 # os.rename("a1","a2") # import os # 操作系统交互的接口 # f = open('a2',"r",encoding="utf-8") # f1 = open("a1","w",encoding="utf-8") # for i in f: # i = i.replace("天","日") # f1.write(i) # # f.close() # f1.close() # os.rename("a2","a3") # os.rename("a1","a2") # 考点: # import os # 操作系统交互的接口 # f = open('a2',"r",encoding="utf-8") # f1 = open("a1","w",encoding="utf-8") # i = f1.read().replace("天","日") # 将文件中全部内容读取 容易导致内存溢出 # f1.write(i) # # f.close() # f1.close() # os.rename("a2","a3") # os.rename("a1","a2") # with open("a3","r",encoding="utf-8")as f,\ # open('a2',"r",encoding="utf-8")as f1: # print(f.read()) # print(f1.read()) # 1.自动关闭文件 # 2.同一时间操作多个文件 # 文件操作的目的: # 1.持久化: 永久存储