- 文件指针定位之 seek 方法
- seek(offset, from)
- offset :文件指针偏移量(很多博客在这里将offset定义为指针偏移量,但是目前我的看法是这里定义为指针的相对位置)
- from : 0-文件开头 1-当前位置 2-文件末尾(这里的0,1,2只是代表了文件位置,而不是说0,1,2可以参与指针偏移的计算。from 是可选项,默认为0.目前接触到的知识,我自己并没有弄明白from的作用。至少在读取非2进制文件时,都是选择默认值)
- 以一个文件内容为hello world 的文本文件为例:
with open("xxxx.txt", "r", encoding= "utf-8") as f:
print(f.read()) # helloworld
f.seek(8)
print(f.read()) # rld
-
- Python3中 如果from 不为0 ,那么 offset就必须为0
- 如果想读取文件倒数n个字符,以文件末尾为参照对象,向前移动n个字符(我的理解是定位指针),就可以得到指针的相对位置。
f.seek(f.seek(0,2)-4,0)
print(f.read()) # orld
- 使用utf-8编码格式 seek()方法定位文件指针,追加写入内容如果是中文,只能执行一次追加写入方法,如果是第二次会报错,‘utf-8’ codec can’t decode byte 0x99 in position 0: invalid start byte。但是用英文字符串写入不受限制。目前没搞懂原因。
转载自原文链接, 如需删除请联系管理员。
原文链接:Python- 文件指针定位之 seek() 方法,转载请注明来源!