本文正在参加「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())
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() 时,使用了非 0 的偏移量,因此文件的打开方式中必须包含 b,否则就会报 io.UnsupportedOperation 错误
我们把打开文件模式改成r模式,再次运行,程序报io.UnsupportedOperation 错误
总结
本期,主要对前面文件管理相关的知识点进行汇总,以上对一些陌生的方法如seek(),tell()进行讲解。我们在工作使用,要经常使用这些方法,俗话说“工善其事必先利其器”,夯实基础。
以上是本期内容,欢迎大佬们评论点赞,下次见~