Python基础35 文件对象的常用方法、读操作和写操作、with语句、上下文管理器

一、文件对象的常用方法

"""
文件对象的常用方法
    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.read())
# print(file1.read(1))

print(file1.readline())
print(file1.readlines())
file1.close()

三、文件的写操作

# 写
file=open('c.txt','a')
lst=['java','c','python']
file.writelines(lst)
file.flush()    # flush之后还可以继续写,close之后就不可以了
file.write('123')
file.close()

四、文件的指针移动

# seek 指针的移动
file=open('a.txt','r')
file.seek(2)    # 一个汉字两个字符 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__()
"""
# 不需要手动close 跳出with语句的时候 自动关闭文件

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()
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值