文件操作
基本语法:
f=open('t1',mode='r',encoding='utf-8')
打开 第一个内容是文件的名字(必须是字符串)
mode 第二个内容是咱们对这个文件的操作方式 只读
encoding 第三个内容是对这个文件的编码集
f 是文件句柄 所有对文件的操作都是操作文件句柄 相当于一个锅把,用于变相去操作文件中的内容
文件句柄是一个可迭代对象
优点:相对来说节省内存,操作简单
1 for i in f: 2 print(line.strip()) 3 f.colse()
f.read() # 读 一次性全部读取
f.readline() # 读取一行,但是有个 \n 换行 自带换行
f.readlines() #readlines 一行一行的读取,存放在列表里
f.read(5) # 读模式下,read中的内容是表示读取的字符数量
f1=open('t1',mode='r')
f1=open(r'f:\users',mode='r') # r 和 \\一样都是转义
绝对路径和相对路径:
从磁盘根目录开始查找就是绝对路径
相对路径 相对于内容详解来查找的一种路径 推荐此写法
..\ 返回上一级
\ 进入下一级 可以把单个\写成双\\
mode:
r:只读模式 【默认模式,文件必须存在,不存在则抛出异常】
w:只写模式 【不可读;不存在则创建;存在则清空内容】 每次打开都会先清空之前的内容,然后再写
a:追加写模式 【不可读;不存在则创建;存在则只追加内容】 每次打开都会在文件末尾写
r+: 读写【可读,可写】 侧重于读
1 r+: 2 f=open('t1',mode='r+',encoding='utf-8') # r+ 主要以读为主 先读后写 3 print(f.read()) 4 f.write('啊哈哈哈哈')
w+: 写读【可读,可写】 侧重于写
1 w+: 2 f=open('t1',mode='w+',encoding='utf-8') 3 f.write('哇咔咔') 4 f.seek(0) # 移动光标 里面是索引参数 5 print(f.read())
a+: 追加写读【可读,可写】 侧重于写
1 a+: 2 f=open('t1',mode='a+',encoding='utf-8') 3 f.seek(0) # 先移动光标,后读 4 print(f.read()) 5 f.write('hello')
好习惯:
f.flush() # 刷新
f.close() # 关闭
每次用完文件句柄后要刷新一下,最后不用的时候关闭
1 with open('t1',mode='r',encoding='utf-8')as f: 2 msg=f.read() 3 print(msg)
用with open()as 文件句柄 语法简单,自动关闭文件,不用手动关闭
with open('t1','r',encoding='utf-8')as f,\ # \ 表示是这句话还没有讲完,两句是同一句话
open('t2','w',encoding='utf-8')as f1:
f.seek(0) 移动到文件开头 seek表示移动光标 seek按字节移动
一个中文3个字节
0,0 文件头部
0,1 当前位置
0,2 文件尾部
f.tell() 查看光标的位置当前 数的是字节
f.truncate(9) 截断,指定字节之后的内容全部删除
文件修改:
import os # 导入 os和操作系统相关
os.rename() # 重命名 第一个参数旧的名字,第二个是新的名字
os.remove() # 删除这个文件 字符串