当前位置:   article > 正文

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

py文件对象方法合集

一、文件对象的常用方法

"""
文件对象的常用方法
    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()
        把缓冲区的内容写入文件,同时关闭文件,释放文件对象相关资源
"""
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

二、文件的读操作

# 读
file1=open('a.txt','r')
# print(file1.read())
# print(file1.read(1))

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

三、文件的写操作

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

四、文件的指针移动

# seek 指针的移动
file=open('a.txt','r')
file.seek(2)    # 一个汉字两个字符 2 代表跳过第一个字开始读

print(file.read())
print(file.tell())  # 返回当前指针位置

file.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

五、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())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

六、上下文管理器

"""
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
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/183112
推荐阅读
相关标签
  

闽ICP备14008679号