文件操作
- 找到文件位置
- 双击打开
- 进行一些操作
- 关闭文件
读操作
文件只能读取一次
注意光标的位置
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.持久化: 永久存储