day08
文件操作:
open() :打开
f (文件句柄)= open("文件的路径(文件放的位置)",mode="操作文件的模式",encoding="文件的编码")内置函数
# f = open("萝莉小姐姐电话号",mode="r",encoding="utf-8")
# print(f.read())
# f.close()
f :文件句柄
-
file : 文件的位置(路径)
路径:推荐使用相对路径**********
1、绝对路径 —— C:\user\meet\python24\操作
# f = open("F:\s24\day08\萝莉小姐姐电话号","r",encoding="utf-8") # print(f.read())
2、相对路径
# f = open("../day03/萝莉小姐姐电话号","r",encoding="utf-8") # print(f.read())
3、../ 返回上一层 ,至少要写你选择的文件的上一级文件夹
4、1、\ 路径转义
2、 r"C:\..."
# f = open(r"C:\user\net\s24\day03\萝莉小姐姐电话号","r",encoding="utf-8")
repr():显示数据原生态
# s = "[1,'2',3,4]" # print(s) # print(repr(s)) # repr -- 显示数据原生态
mode :操作文件的模式
encoding :文件的编码方式
with open: 自动关闭文件
with open(内容)as f:
其他代码
# 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()) # 文件及已经关闭了
操作文件步骤:
1、打开文件
2、操作文件
3、关闭文件
文件操作模式:
r、w、a(重要)
-
r操作:
read():全部读取
read(3):读三个字,按照字符进行读取
readline():按行读取,自动换行,用strip()去掉换行符
readlines():一行一行读取存在列表中
文件读过之后光标到已读文字的后面
# f = open("萝莉小姐姐电话号",mode="r",encoding="utf-8") # print(f.read()) #全部读取 # print(f.read(5)) #按照字符进行读取 # print(f.read()) # print(f.readline()) # 读取一行内容,自动换行 # print(f.readline()) # "常鑫你就是大帅比\n" # print(f.readline().strip()) #去除换行符 # print(f.readlines()) # 一行一行的读取,存放在列表中
解决大文件:
for i in f: print(i) # 本质就是一行一行进行读取 # print(f.readline()) # print(f.readline()) # print(f.readline())
-
w操作:检查是否有文件,没有就创建
write(字符串):分为两步
1、先清空文件
2、写入文件
很多write()时候,第一次打开文件的时候清空文件,后面的不清空
# f = open("萝莉小姐姐电话号","w",encoding="utf-8") # f.write("123456789\n") # f.write("123456789\n") # f.write("123456789\n") # f.write("123456789\n")
-
a操作 :追加写,检查是否有文件,没有就创建
在源文件的基础上进行追加
write()
# f = open("../day03/萝莉小姐姐电话号","a",encoding="utf-8") # f.write("138383848\n") # f.write("138383850\n")
rb、wb、ab(次要)
-
rb操作
read() :全部读取
read(3):按照字节读取
# f1 = open("1.jpg","rb") # print(f1.read()) # 全部读取 # print(f1.read(3)) # 按照字节读取 # f = open("下载.jpg","rb") # print(f.read())
-
wb操作
write():写入字节
# f = open("3.jpg","wb") # f.write(f1.read())
-
ab操作(不常用)
write():追加
# f = open("2.jpg","ab") # f.write("你好啊".encode("utf-8"))
r+、w+、a+(没啥用)
-
r+操作:读写——先读后写
# 错误的操作 (坑) # f = open("萝莉小姐姐电话号","r+",encoding="utf-8") # f.write("常鑫你太美") # print(f.read()) # 正确的操作: # f = open("萝莉小姐姐电话号","r+",encoding="utf-8") # print(f.read()) # f.write("常鑫你太美")
-
w+操作:清空写+读(读不到内容)
# f = open("萝莉小姐姐电话号","w+",encoding="utf-8") # f.write("常鑫你太美") # print(f.tell()) # # f.seek(15) # # print(f.tell()) # print(f.read())
-
a+操作:追加写+读(读不到内容),
- 注意:将光标移动到某个位置进行,写入的时候还是在文件的末尾
# f = open("萝莉小姐姐电话号","a+",encoding="utf-8") # f.write("常鑫你太美") # print(f.tell()) # 字节数 # print(f.seek(0,0)) # 0将光标移动到文件的头部 # print(f.read())
其他操作:
tell():查看光标,返回的是字节数
-
seek():移动光标
seek(一个数字):按照字节来移动(中文:3个字节,英文:1个字节),按照编码集自己进行计算
seek(0):将光标移动到文件头部
seek(0,0) :移动到文件的头部
seek(0,1) :当前位置
seek(0,2) :移动到文件的末尾
# 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())
-
文件修改
1、利用read()赋值给s字符串,然后用replace()替换
2、利用for循环,一句一句替换
# f = open("萝莉小姐姐电话号","r",encoding="gbk") # s = f.read() # s1 = s.replace("你太美","吃煎饼") # f1 = open("萝莉小姐姐电话号","w",encoding="gbk") # f1.write(s1)