文件操作
一.文件操作
1.文件操作:
- open() #打开
- file #文件的位置(路径)
- mode #操作文件的模式
- encoding #文件编码方式
- f #文件句柄
f = open("密码",mode = "r",encoding = "utf-8")
print(f.read())
f.close()
2.操作文件:
- 打开文件
- 操作文件
- 关闭文件
3.文件操作的模式:
- r,w,a(重要)
- rb,wb,ab (次要)
- r+,w+,a+(没啥用)
f(文件句柄) = open("文件的路径(文件放的位置)",mode ="操作文件的模式",encoding = "文件的编码方式") #内置函数
二.r,w,a
1.r操作:
f = open("密码",mode = "r",enconding = "utf-8")
print(f.read()) #全部读取
print(f.read(5)) #按照字符进行读取
print(f.readline()) #读取一行内容,自动换行
print(f.readline().strip()) #读取一行内容并去除换行符
print(f.readlines()) #一行一行的读取,存放在列表中
解决大文件
for i in f:
print(i) #本质就是一行一行进行读取
2.w操作
w操作分为两步:
1.先清空文件
2.写入文件
f = open("密码","w",encoding = "utf-8")
f.write("123456789
")
f.write("123456789
")
路径:
1.绝对路径 --C:usermeetpython24密码
2.相对路径 -- ../ 返回上一层
绝对路径:从根目录下开始一直到文件名。
相对路径:同一个文件夹下面的文件,直接写文件名就可以。
绝对路径打开文件
f =open("C:usermeetpython24密码","r",encoding = "utf-8")
print(f.read())
相对路径打开文件:
f = open("../python24/密码,"r",encoding = "utf-8")
print(f.read())
f = open(r"C:user
ets24密码","r",encoding = "utf-8")
路径转义:
1."\"
2.r"C:user
et
###推荐使用相对路径###
s = "[1,'2',3,4]"
print(s)
print(repr(s)) #repr --显示数据原生态
3.a操作
a操作:追加写
在源文件的基础上进行添加
f = open("../day03/密码","a",encoding = "utf-8")
f.write("123456789
")
f.write("123456789
")
三.rb,wb,ab操作
1.rb操作:
f1 = open("1.jpg","rb")
print(f1.read()) #全部读取
print(f1.read(3)) #按照字节读取
在读取非文本文件的时候,比如要读取mp3,图像,视频等信息的时候就需要用到rb,因为这种数据是没办法直接显示出来的,这个字节的模式是用于传输和存储.
2.wb操作
f = open("3.jpg","wb")
f.write(f1.read())
3.ab操作
f = open("2.jpg","ab")
f.write("你好".encode("utf-8"))
f = open("2.jpg","rb")
print(f.read())
四.r+,w+,a+操作
1.r+操作:
r+ : 读写,先读后写
正确的操作:
f = open("密码","r+",encoding = "utf-8")
print(f.read())
f.write("你好阿")
错误的操作:
f = open("密码","r+",encoding = "utf-8")
f.write("你好阿")
print(f.read())
2.w+操作
w+ : 清空写,读
f = open("密码","w+",encoding = "utf-8")
f.write("你好阿")
print(f.read())
3.a+操作
a+ : 追加写,读
f = open("密码","a+",encoding = "utf-8")
f.write("你好阿")
print(f.read())
4.其他操作
tell() 查看光标 --返回的是字节数
seek() 移动光标
- seek(0,0) --移动到文件的头部
- seek(0,1) --当前位置
- seek(0,2) --移动到文件的末尾
- seek(3) --按照字节进行移动(按照编码集,自己进行计算)
f = open("密码","r",encoding = "gbk")
print(f.read(3)) #字符
f = open("密码","rb")
print(f.read(3)) #字节
f = open("密码","r",encoding = "gbk")
print(f.read(3)) #字符
错误操作
f = open("密码","r",encoding = "gbk")
f.seek(-1)
print(f.read())
文件修改
f = open("密码","r",encoding="gbk")
s = f.read()
s1 = s.replace("你太美","吃煎饼")
f1 = open("密码","w",encoding="gbk")
f1.write(s1)
with
with 关键字 open("密码",”r“,encoding = “gbk”) as f:
文件操作的具体内容
#w,a 检测有文件就操作,没文件就创建
with open("密码","r",encoding="gbk")as f,
open("密码.txt","w",encoding="gbk")as f1:
for i in f:
s1 = i.replace("大烧饼","井盖")
f1.write(s1)
import os
os.rename("密码","密码.bak")
os.rename("密码.txt","密码")
with open("密码","r",encoding="gbk")as f:
pass # 缩进操作文件
print(f.read()) # 文件已经关闭了