Python 文件对象属性及方法 | Python 主题月

500 阅读3分钟

本文正在参加「Python主题月」,详情查看 活动链接

Python主题月

回顾复习

文件管理浅析中,我们对文件管理进行了整个框架基本认识文件分类及基本Python操作步骤

文件关闭流里深知文件操作完成后,要进行关闭,释放电脑资源;文件读写一章里,对文件的基本的读写操作及用法进行学习

本期,我们将对前几章的学习进行汇总,同时介绍在工作场景中使用文件常见的方法。

1. 文件对象属性

文件对象的属性:

属性说明
name返回文件的名字
mode返回文件的打开模式
closed若文件被关闭则返回True

2. 文件对象打开模式

模式说明
r读模式
w写模式
a追加模式
b二进制模式(可与其他模式组合)
+读写模式(可与其他模式组合)

文件打开模式

2. 文件对象方法

方法名说明
read([size])从文件中读取size个字节或者字符的内容返回。若省略[size],则读取到文件末尾,即一次读取文件所有内容
readline()从文本文件中读取一行内容
readlines()把文本文件中每一行都作为独立的字符串对象,并将这些对象放入列表返回
write(str)将字符串str内容写入文件
writelines(s)将字符串列表s写入文本文件,不添加换行符
seek(offset,[,whence])把文件指针移到新的位置,
tell()返回文件指针的当前位置
truncate([size])不论指针在什么位置,只留下指针前size个字节的内容,其余全部删除如果没有传入size,则当指针当前位置到文件末尾内容全部删除
flush()把缓冲区的内容写入文件,但不关闭文件
close()把缓冲区内容写入文件,同时关闭文件,释放文件对象相关资源

3. 文件指针

文件指针用于标明文件读写的起始位置。

文件指针

实现对文件指针的移动,文件对象提供了 tell() 函数和 seek() 函数。

  • tell() 函数用于判断文件指针当前所处的位置

  • seek() 函数用于移动文件指针到文件的指定位置

3.1 tell

tell() 函数的用法很简单,其基本语法格式如下:

文件.tell()

tell函数会返回,文件指针的位置距离开头多个字节后。

with open("a.txt","r") as f:

    print("指针初始位置:",f.tell())

    print("读取内容:",f.read(3))

    print("读取内容后指针位置:",f.tell())

tell运行结果

3.2 seek
seek(offset,[,whence])

offset表示相对于whence的多少个字节的偏移量

offset:off为正往结束方向移动,为负王开始方向移动

whence 不同的值代表不同含义:

0:从文件头开始计算(默认值);

1:从当前位置开始计算;

2:从文件尾开始计算;

Waring:当 offset 值非 0 时,Python 要求文件必须要以二进制格式打开,否则会抛出 io.UnsupportedOperation 错误。

with open("a.txt","rb") as f:

    print("指针初始位置:",f.tell())

    # 从文件开头h后移到第5个字符的位置
    f.seek(5,0)

    print("读取指针位置:",f.tell())

    #将文件指针从当前位置,向后移动到 5 个字符的位置
    f.seek(3,1)

    print("读取指针位置:",f.tell())

    f.seek(-1,2)

    print("读取指针位置:", f.tell())

seek运行结果

注意:由于程序中使用 seek() 时,使用了非 0 的偏移量,因此文件的打开方式中必须包含 b,否则就会报 io.UnsupportedOperation 错误

我们把打开文件模式改成r模式,再次运行,程序报io.UnsupportedOperation 错误 image.png

总结

本期,主要对前面文件管理相关的知识点进行汇总,以上对一些陌生的方法如seek(),tell()进行讲解。我们在工作使用,要经常使用这些方法,俗话说“工善其事必先利其器”,夯实基础。

以上是本期内容,欢迎大佬们评论点赞,下次见~