米希児
2021-03-05 16:55
采纳率: 100%
浏览 422

python的readline()是何如实现跳过第一行的

本人python新手一枚,想请教各位大佬,

teleFile.readline()执行后,再使用readlines()获取内容时,为什么能跳过第一行,

个人理解,teleFile是我打开的一个.txt文件,不做任何操作时,里面应该包含了文件中的全部内容,对它执行readline()后,再使用readlines()获取文件内容时,应该还是全部内容,但实际打印出的结果显示去掉了首行内容。

想请教python底层执行的过程及原理。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • 天际的海浪 2021-03-05 17:44
    已采纳

    在文件对象teleFile内部有一个指针,初始时指针指向文件内容的第一行。

    在执行teleFile.readline()时,读取指针指向的那一行,然后指针重新指向下一行。

    这样第一次执行teleFile.readline()时,读取的是第一行,

    第二次执行teleFile.readline()时,读取的就是第二行,

    而teleFile.readlines()方法其实就是循环的调用readline()方法,直到指针指向文件结尾。

    你的代码先执行一次teleFile.readline()之后指针就指向第二行了。

    然后teleFile.readlines()中调用readline()方法就从第二行开始读取了。

    1 打赏 评论
  • PythonJavaC++go 2021-03-05 17:46

    readline()每调用一次只读取一行,调用结束,指针在行末

    readline()一次后,再read(),自然就跳过第一行喽

    1 打赏 评论
  • 给你骨质唱疏松 2021-03-05 23:05

    使用 open( ) 函数获取到一个文件对象, 也称之为文件句柄, 用来操控磁盘上的文件,

    在文件对象内部会有一个指针, 使用 "r" 模式打开文件, 初始指针在文件开头位置, 也就是文件的第一行

    使用文件对象的 readline( ) 方法每次只能读取一行, 读取一次后指针跳到第二行, 读一次跳一次

    可以使用文件对象的 seek() 方法调整指针的位置

    可以使用文件对象的 tell() 方法获取指针当前的位置

    想细究可以看看这篇 : 文件指针移动 :  https://www.cnblogs.com/songhaixing/p/14052837.html

    还有其他的比较细节的文件操作也可以看到, 加油!

    1 打赏 评论
  • 爱晚乏客游 2021-03-05 17:03

    你调用第一个readline()的时候就返回了第一行的内容了啊,你后面调用readline()就是第二行开始了啊。你想要的第一行的话,就把teleList上面两行删除掉就行了。

    打赏 评论
  • 米希児 2021-03-05 17:25

    python .read()方法的文件指针的问题https://blog.csdn.net/qq_24732411/article/details/81428596

    打赏 评论
  • 兔老大RabbitMQ 2021-03-18 13:59

    不是少了,是读了你没接收

    打赏 评论

相关推荐 更多相似问题