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))

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值