16 文件操作
16.1 文件操作的基本概念
文件操作的步骤
- 打开文件
- 读、写文件
- 关闭文件
open函数,创建一个file对象,默认是以只读的方式打开
read方法:一次性读取文件的所有内容
write方法:将指定内容写入文件
close方法:关闭文件
file对象的属性
flie.name 文件的名称
file.mode 文件的访问模式
file.closed 返回文件是否关闭
1open("文件的路径filename","访问模式mode")
1 2f = open("zhangsan.txt") #创建一个文件对象 3print(f) 4print(f.name) #文件名 5print(f.mode) #访问模式 6print(f.closed) #是否关闭
16.2 文件的读取
1 2f = open("zhangsan.txt") 3content = f.read() #读取文件的所有的内容 4print(content) 5f.close() 6 7 8f = open("zhangsan.txt") 9content = f.read(10) #只读取10个字符 10print(content) 11f.close() 12 13 14f = open("zhangsan.txt") 15lines = f.readlines() 16for each in lines: 17 print(each) 18f.close() 19 20 21f = open("zhangsan.txt",encoding="utf-8") 22str_ = f.readline() #一次读一行 23f.close() 24 25with open("test.txt",encoding="utf-8") as f: 26 while True: 27 text = f.readline() 28 if not text: #如果没有读取到 29 break #跳出循环 30 31
16.3 文件的访问模式
r : 只读模式(默认)
w: 只写模式 ,不存在则创建,存在则删除原来的内容
r+ : 先读再写,可读写文件,文件不存在则抛出异常
w+ : 先写再读
a : 追加模式,不存在则创建
16.4 文件的写入
1f = open("zhangsan.txt",mode="w") 2f.write("写入的内容") 3f.close() 4
tell 和seek
tell方法:显示文件内的当前位置
seek方法:改变当前文件的位置
seek(offset,from)
seek 表示要移动的字节数
from 表示移动子节的参考位置,0代表文件开头;1代表使用当前位置;2代表文件结尾作为参考位置
seek(0,0) 把光标移到文件开头
1f = open("zhangsan.txt","w+") 2f.write("content") 3pos = f.tell() #当前光标的位置 4print(pos) 5f.seek(0,0) # 把光标移到文件开头 6print(f.read()) 7pos = f.tell() #查看当前光标位置 8f.close() 9
16.5 with关键字
1 2# with :代码执行完,系统会自动调用f.close()方法 3 4with open("test.txt","w") as f: 5 f.write("hahaha") 6print(f.closed) #代表文件已关闭 7
16.6 编码格式
默认编码:GBK
修改为utf-8
1with open("test.txt","w",encoding="utf-8") as f: 2 f.write("你好啊") 3
16.7 目录操作、os模块
文件重命名:os.rename
删除文件: os.remove
创建文件夹: os.mkdir
获取当前目录: os.getcwd
删除文件夹: os.rmdir
1import os 2 3os.remove("we.txt") #删除文件 4 5 6#创建文件夹: 7os.mkdir("zhangsan") 8 9# 删除文件夹: 10os.rmdir("zhangsan") 11 12# 获取当前目录 os.getcwd 13print(os.getcwd()) 14 15# 获取目录列表 16print(os.listdir()) 17 18print(os.listdir("D://hello")) 19
