打开一个文件,读取内容,是很常见的操作。不过有的时候我们还需要反复读取文件中的内容,如果多次打开文件读取再多次关闭,显然不是特别好的操作,我们可以借助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 --

python的tell和seek_python文件对象的seek和tell相关推荐

  1. python字符串、列表和文件对象总结

    1.字符串是字符序列.字符串文字可以用单引号或者双引号分隔. 2.可以用内置的序列操作来处理字符串和列表:连接(+).重复(*).索引([]),切片([:])和长度(len()).可以用for循环遍历 ...

  2. python对文件的写操作方法seek_python文件操作及seek偏移详解

    一.python文件操作中的编码 本次测试是基于python 2.7.12   OS:Ubuntu16.04  pycharm环境,以及win7下2.7.12; 首先说下汉字在文件中占用的字节数,这个 ...

  3. 十四、Python第十四课——文件和异常

    (请先看这篇文章:https://blog.csdn.net/GenuineMonster/article/details/104495419) 如果看完这篇博文,你的问题还是没有解决,那么请关注我的 ...

  4. Python笔记四之操作文件

    一.字符串方法补充(join.split) join方法: # join方法,连接字符串 1.把一个list变成了字符串 2.通过某个字符把list里面的元素连接起来 # 3.只要是可以循环的都可以连 ...

  5. python判断是否到了文件尾

    1.利用文件对象的seek方法得到文件尾的数值: f = open(filename, 'rb') f.seek(0, 2) #第一个参数表示偏移量(正数表示向后移动,负数表示向前移动), #第二个参 ...

  6. c++读取utf8文件_【Python】File文件对象

    open()方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. 注意:使用 open() ...

  7. python文件对象提供了3个读方法、分别是-Python读写文件模式和文件对象方法实例详解...

    本文实例讲述了Python读写文件模式和文件对象方法.分享给大家供大家参考,具体如下: 一. 读写文件模式 利用open() 读写文件时,将会返回一个 file 对象,其基本语法格式如: open ( ...

  8. python文件对象提供了3个读方法、分别是-python3 IO编程:文件读写

    打开文件对象 在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从 ...

  9. python在读写文件之前需要创建文件对象-python基础教程:文件读写

    在Linux系统中,一切都是文件.但我们通常说的文件是保存在磁盘上的图片.文档.数据.程序等等.而在程序的IO操作中,很多时候就是从磁盘读写文件.本节我们讲解Python中的文件对象如何操作文件. 创 ...

最新文章

  1. 90行代码!大一学生自学编程,自创搜题网站,已在GitHub开源
  2. [PHP] 算法-合并两个有序链表为一个有序链表的PHP实现
  3. Highcharts 配置选项详细说明
  4. python信息管理系统实战_最新python入门+进阶+实战课堂教学管理系统开发全套完整版...
  5. VC++视频教程下载地址
  6. java获取汉字的拼音首字母_java获取汉字的拼音首字母
  7. 数据结构简答题和论述题
  8. 巧妙实现表格奇偶行换色
  9. # 研究杂感 × Gephi(第一辑)
  10. DWG 、DXF格式互转、CAD版本转换,记住一个就能快速提高你的工作效率!
  11. WordPress去掉分类链接中category目录的两种方法
  12. (z)无杂散动态范围SFDR--影响通信机性能的因素
  13. 华为交换机DHCP Server释放IP
  14. USB、UART、SPI PCI/PCIE等总线速率
  15. 大数据来临,商业银行面对合规挑战!
  16. [裴礼文数学分析中的典型问题与方法习题参考解答]4.5.1
  17. javascript组合模式创建对象
  18. arduino mega针脚_Arduino MEGA串口TX1、RX1使用方法
  19. 已解决mybatis报错:Invalid bound statement (not found)
  20. C++ 函数反汇编跟踪以及栈结构分析

热门文章

  1. 如何通过BIPlatform完成多维报表以及图形配置
  2. IIS报错,App_global.asax.×××.dll拒绝访问
  3. [代码]ural 1655 Somali Pirates
  4. Linux中/proc目录下文件详解(二)
  5. cac会议投稿难度大吗_发表 SCI 论文有多难?
  6. 【MM配置】Purchasing 采购配置
  7. PP生产订单的BADI增强 WORKORDER_UPDATE
  8. 用新语法写更简洁的ABAP代码
  9. 6、Power Map—实例:柱状图按月展示数据变动
  10. Mule与Servicemix比较