Python入门文件之: seek()和tell()函数

  Python open() 函数打开文件并读取文件中的内容时,总是会从文件的第一个字符(字节)开始读起。

那么,有没有办法可以自定指定读取的起始位置呢?

实现对文件指针的移动,文件对象提供了 tell() 函数和 seek() 函数。tell() 函数用于判断文件指针当前所处的位置,而 seek() 函数用于移动文件指针到文件的指定位置。

各个参数的含义如下:

  • file:表示文件对象;
  • whence:作为可选参数,用于指定文件指针要放置的位置,该参数的参数值有 3 个选择:0 代表文件头(默认值)、1 代表当前位置、2 代表文件尾。
  • offset:表示相对于 whence 位置文件指针的偏移量,正数表示向后偏移,负数表示向前偏移。例如,当whence == 0 &&offset == 3(即 seek(3,0) ),表示文件指针移动至距离文件开头处 3 个字符的位置;当whence == 1 &&offset == 5(即 seek(5,1) ),表示文件指针向后移动,移动至距离当前位置 5 个字符处。
file.tell()

file.seek(offset,[whence])

f = open('a.txt', 'rb')

print(f.tell())               # 判断文件指针的位置

print(f.read(1))              # 读取一个字节,文件指针自动后移1个数据
print(f.tell())

f.seek(5)                    # 将文件指针从文件开头,向后移动到 5 个字符的位置
print(f.tell())
print(f.read(1))


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

f.seek(-1, 2)               # 将文件指针从文件结尾,向前移动到距离 10 个字符的位置
print(f.tell())
print(f.read(1))
发布了96 篇原创文章 · 获赞 76 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/u010244992/article/details/104934295