python中tell函数_python文件对象的seek和tell

打开一个文件,读取内容,是很常见的操作。不过有的时候我们还需要反复读取文件中的内容,如果多次打开文件读取再多次关闭,显然不是特别好的操作,我们可以借助python文件对象的seek和tell函数,来实现反复的读取文件内容,最后再关闭文件。

文件对象的tell函数

先说tell函数,这个简单,就是告诉我们当前文件读取指针处于文件的什么位置。tell函数返回的位置,以byte计数:

>>> f = open('1.txt')

>>> f.tell()

0

>>> f.read(1)

'#'

>>> f.tell()

1

>>> f.read(24)

' GTR2SP2L A0A2 table\n# g'

>>> f.tell()

25

打开文件后,tell返回的位置是0;读取一个字符,tell就返回1。因此,python文件对象的tell函数,返回的位置就是已经去读的最后一个byte,下次再read,就是从这个位置往后开始算。

文件对象的seek函数

seek函数是用来重新定位读取文件的指针位置。

>>> f.close()

>>> f = open('1.txt')

>>> f.read(48)

'# GTR2SP2L A0A2 table\n# generating time: 17:00:0'

>>> f.tell()

48

>>> f.seek(0)

0

>>> f.read(48)

'# GTR2SP2L A0A2 table\n# generating time: 17:00:0'

以上代码,中间那个f.seek(0),将读取文件的指针,重新定位到最开始的位置,因此两次f.read(48),得到的内容是一样的。

seek含有一个参数,用来确定参考位置,默认是0,表示从文件头开始的绝对位置,1表示以当前位置为参考,2表示从文件末尾开始。不过这个参数,我自己在测试的时候,始终有问题,因此就不详细介绍了。

-- EOF --

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值