文件操作
-
语法
# f = open("文件路径", mode="模式", encoding="编码") # open() 调用操作系统打开文件 # mode 对文件的操作方式 # encoding 文件的编码 -- 存储编码要统一 # win -- 默认gbk # linux,mac -- 默认utf-8 # f 文件句柄 -- 操作文件的途径
# 另一种打开文件的方式: 帮助自动关闭文件;可以同时开多个文件,用逗号隔开;也可以同时操作一个文件 with open("a", mode="r", encoding="utf-8") as f, open("b", mode="w", encoding="utf-8") as f1: import os print(os.getcwd()) # 查看当前工作路径 os.remove() # 删除文件 os.rename() # 更改文件名.(旧名,新名)
-
模式
-
读
# r f = open("a", mode="r", encoding="utf-8") contend = f.read() # 全部读取 print(contend) print(f.read(3)) # 字符读取 print(f.readline()) # 读取一行,()内可以加入需要读取本行的几个字符 print(f,randlines()) # 读取每一行,存储到列表中 for line in f: # 一行一行读取 -- 防止内存溢出 print(line) # rb -- 读非文本文件,不能指定编码, f = open("a", mode="rb") print(f.read(3)) # 读取3个字节 # r+ -- 读写 -- 先读后写 f = open("a", mode="r+", encoding="utf-8") print(f.read()) f.write("你好啊") f.flush() f.close() # 关闭文件,释放内存 # r+b
-
写
# w 清空写 -- 没有文件就创建,有就打开,先清空,再写入 f = open("a", mode="w", encoding="utf-8") f.write("乳娃娃") # 不能写入int f.flush() f.close() # wb # w+ -- 先清空,写入,再读.用不着 # w+b
# a 追加写 -- 文件末尾写入 f = open("a", mode="a", encoding="utf-8") f.write("啊啊啊啊啊啊啊,好烦啊") f.flush() f.close() # ab # a+ -- 追加读,光标默认在末尾 f = open("a", mode="a+", encoding="utf-8") print(f.read()) f.write("真的废物") # a+b
-
-
其他操作
-
绝对路径 -- 从磁盘的根处查找
-
相对路径 -- 相对于当前文件进行查找
-
tell() -- 查看光标位置,单位是字节
-
seek(偏移量,起始位置) -- 起始位置默认0--开头,1--当前位置,2--末尾
总结
-
# open() # 打开
# close 要关闭文件
# 写模式下需要刷新 flush()
# r 只读
# read(3) 看对文件操作的模式来判断是字符还是字节
# mode = 'r' 时候是字符
# mode = 'rb' 时候是字节
# readline() 读取一行,自带
(换行)
# readlines() 读取全部以一行一行的形式存在放列表里
# a 追加
#文件的末尾写
# w 覆盖写
# 先清空文件,后写入文件
# rb ,wb ab自己试
# 只要是带b的模式,注意的是不是不能有encoding
# a+
# 追加 + 读 注意 不管怎么读都读不到内容,除非移动光标
# w+
# 覆盖写 + 读 注意:先写后读 先读后写 除非移动光标
# r+
# 读 + 写 注意: 先读后写
# 其他操作
# seek() 移动光标
# 0,0 开头
# 0,1 当前
# 0,2 末尾
# 3 如果是文字就移动一位,如果是英文就移动3位
# tell() 查看光标 光标是按照字节数的
# truncate() 截取 内容是字节数
# 文件修改
import os # 导入 os和操作系统相关
# os.rename() # 重命名 第一个参数旧的名字,第二个是新的名字
# os.remove() # 删除这个文件 字符串
# with open('t1','r',encoding='utf-8')as f,
# open('t2','w',encoding='utf-8')as f1:
# 路径:
# 绝对路劲: 从磁盘根目录开始查找
# 相对路劲: 相对于某个东西来查找就是相对路径
# 返回上一级 ..
# c:user... 可以把单个写成双\
# 在路径的前面加一个r
# 以上两种就是转义