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