文件操作
1.open()
file(文件),
mode='r'(操作模式),
buffering=None(缓存策略),
encoding=None(编码方式),
errors=None(错误处理方式),
newline=None(设置换行控制符),
closefd=True(关闭描述文件)
2.文件操作方法
file = open(file="test_demo",mode="r",encoding="UTF-8")
读取文件所有的内容 s = file.read()
读取第一行数据 s = file.readline()
读取多行数据 s = file.readlines() 存在list里面,会读取到换行符(\n)
处理中文 encoding="UTF-8"
关闭文件 file.close() 或者
3.with语法
# 读文件
with open(file="test_demo", mode="r", encoding="UTF-8") as file:
# 写文件
with open(file="test_demo", mode="w", encoding="UTF-8") as file:
s = file.write("成果来自坚持,执着创造奇迹!")
4.操作模式
r: 读 文件要存在,如果不存在就会报错
w: 写(覆盖) 文件要存在,如果不存在会自动创建
a: 写(追加) 文件要存在,如果不存在会自动创建
r+:支持读写(覆盖写)
w+: 支持读写(覆盖写)
a+: 支持读写(追加写)
rb:以二进制的方式读文件
wb:以二进制的方式覆盖写
ab:以二进制的方式追加写
5.写多个数据
import time
data = ["test1","test2","test3"]
with open(file="demo.txt",mode="a",encoding="utf-8") as f:
time.sleep(1)
f.writelines(data)
f.flush() #手动保存
6.光标操作(不要一边写一边读)
f.seek(0,0)
offset: 偏移量 0
whence=0: 取值的位置 0文件开头位置,1从光标所在位置开始, 2从文件末尾开始
import time
data = ["test1","test2","test3"]
with open(file="demo.txt",mode="a+",encoding="utf-8") as f:
time.sleep(1)
f.writelines(data)
f.flush() #手动保存
#把光标设置到最前面去
f.seek(0,0)
res = f.read()
print("打印数据:",res)
7.上下文管理协议
#类中实现__enter__(self),__exit__()方法就实现了上下文管理协议
class Demo:
def __enter__(self):
print("执行test_01之前执行的方法")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("执行test_01之后执行的方法")
print("退出的时候做的事情")
def test_01(self):
print("干活")
if __name__ == '__main__':
with Demo() as f:
f.test_01()
542
4
33
150
41
40
27
247
欢迎来到testingpai.com!
注册 关于