此处略去,数字追凶第五季,明宣宗行乐图
r+ -- 读写 w+ --写读 a+ -- 追加读
open() : 打开 ,open通过python控制操作系统进行打开文件
open("t1","r",encoding="utf-8") //open(“文件的路径”,”进行的操作”,”文件的编码形式”)
file 文件的位置
mode 默认不写就是r
encoding 文件的编码
f 文件句柄
文件只能读取一次
f = open("d:\python_s25\day08\小姐姐电话号",mode="r",encoding="utf-8")print(f.read()) # 全部读取 print(f.read(3)) # 按照字符读取 print(f.readline()) # 默认尾部有一个\n print(f.readline().strip()) # 读取一行 print(f.readline().strip()) # 将\n去除 print(f.readlines()) #一行一行读取,全部存储在列表中
路径:
绝对路径:从磁盘(c盘)开始查找
相对路径:相对于某个路径文件进行查找
路径的转义:
1."d:\\python_s25\\day08\\t1" 2.r"d:\python_s25\day08\t1" -- 推荐使用
f = open("timg.jpg",mode="rb") print(f.read()) # 全部读取 print(f.read(3)) # 按照字节读取 print(f.readline()) # 按照行进行读取 print(f.readlines())
1.r需要指定encoding,rb不需要 (字节操作,不能指定encoding)
2.r模式中的read(3) 按照字符读取, rb模式中的read(3) 按照字节读取
read 和 readlines 如果文件较大时,会出现内存溢出
解决方案:当文件较大时,使用for循环进行读取(只是展示了一下)
面试题:
f = open('t1',mode="r",encoding="utf-8") for i in f: print(i.strip())
当模式为w 和 a 时,有文件就是用当前文件,没有文件就创建一个文件
ff = open("a1",mode="w",encoding="utf-8") ff.write("123") # 写的内容必须是字符串 ff = open("a1",mode="w",encoding="utf-8") ff.write("我是一个字符串串") # 写的内容必须是字符串 ff = open("a1",mode="w",encoding="utf-8") ff.write("[1,2,3,4]\n") # 写的内容必须是字符串 ff.write('1111\n') # 写的内容必须是字符串 ff.write('2222\n') # 写的内容必须是字符串 ff = open("a1",mode="w",encoding="utf-8") ff.write("[1,2,3,4]\n") # 写的内容必须是字符串 ff.write('1111\n') # 写的内容必须是字符串 ff.write('2222\n') # 写的内容必须是字符串
f = open('timg.jpg',mode="rb") f1 = open("g1.jpg",mode="wb") content = f.read() f1.write(content)
f = open("b1",mode="a",encoding="utf-8") f.write("你好啊\n") f.write("我好啊\n") f.write("他好啊\n") f.write("大家好啊\n")
坑 -- 使用方式是错误 f = open("b1",mode="r+",encoding="utf-8") f.write("今天是周一") # write是清空写 print(f.read()) 正确的操作: f = open("b1",mode="r+",encoding="utf8") print(f.read()) f.write("今天是周一")
f = open("b1",mode="w+",encoding="utf-8") f.write("今天是周一") f.seek(0) # 移动光标 print(f.read()) f = open("b1",mode="w+",encoding="utf-8") f.write("今天是周一") f.seek(0) # 移动光标 f.write("啊啊啊啊啊啊") f.seek(0) print(f.read())
f = open("b1",mode="a+",encoding="utf-8") f.write("今天是周一") f.seek(0) # 移动光标 f.write("啊啊啊啊") print(f.read())
<1> 移动光标 : seek()
seek() 移动光标 f.seek(0,0) # 移动光标到文件的头部 f.seek(0,1) # 移动光标到当前位置 f.seek(0,2) # 移动光标到文件末尾 f.seek(6) # 移动6个字节。光标是按照字节移动 f = open("a1","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("c1","r",encoding="gbk") f.seek(6) # 光标是按照字节移动 print(f.read(3))
tell 查光标 f = open("c1","r",encoding="gbk") print(f.read(3)) print(f.tell()) # 按照字节进行计算
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")
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())
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Python爬虫:Request Payload和Form Data的简单区别说明
浅谈Python中threading join和setDaemon用法及区别说明
Python3-异步进程回调函数(callback())介绍
python继承threading.Thread实现有返回值的子类实例
Python中使用threading.Event协调线程的运行详解
网友评论