一、文件对象的常用方法
"""
文件对象的常用方法
read([size])
从文件中读取size个字节或字符的内容返回
若省略size则读取到文件末尾,即一次读取文件所有内容
readline()
从文本文件中读取一行内容
readlines()
把文本文件中每一行作为独立的字符串对象,并将这些对象放入列表返回
write(str)
将字符串str内容写入文件
writelines(s_list)
将字符串列表s_list写入到文本文件,不添加换行符
seek(offset[,whence])
把文件指针移动到新的位置,offset表示相对与whence的位置
offset:为正往结束方向移动,为负往开始方向移动
whence不同的值代表不同含义:
0:从文件头开始计算(默认值)
1:从当前位置开始计算
2:从文件尾开始计算
tell()
返回文件指针的当前位置
flush()
把缓冲区的内容写入文件,但不关闭文件
close()
把缓冲区的内容写入文件,同时关闭文件,释放文件对象相关资源
"""
二、文件的读操作
file1=open('a.txt','r')
print(file1.readline())
print(file1.readlines())
file1.close()
三、文件的写操作
file=open('c.txt','a')
lst=['java','c','python']
file.writelines(lst)
file.flush()
file.write('123')
file.close()
四、文件的指针移动
file=open('a.txt','r')
file.seek(2)
print(file.read())
print(file.tell())
file.close()
五、with语句
"""
with语句(上下文管理器)
with语句可以自动管理上下文资源,不论什么原因跳出with块,
都能确保文件正确的关闭,以此来达到释放资源的目的
语法
with 上下文表达式 as 上下文管理器对象的引用:
with语句体
with open('logo.png','rb') as src_file:
src_file.read()
上下文管理器:实现了__enter__()方法和__exit__()方法,遵守了上下文管理协议
开始时自动调用__enter__()方法,并将返回值赋值给src_file
离开运行时上下文,自动调用上下文管理器的特殊方法__exit__()
"""
with open("a.txt",'r') as file:
print(file.read())
六、上下文管理器
"""
MyContentMgr实现了特殊方法__enter__(),__exit__()
成为该类对象遵守了上下文管理器协议
该类对象的实例对象,成为上下文管理器
"""
class MyContentMgr(object):
def __enter__(self):
print('enter方法被调用执行了')
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print('exit方法被调用了')
def show(self):
print('show方法被调用了')
with MyContentMgr() as file:
file.show()