seek()函数?

Gme*_*n83 116 python

请原谅我的困惑,但我已经阅读了关于python中的seek()函数的文档(必须使用它之后)虽然它对我有所帮助,但我仍然对它的实际含义有点困惑,任何解释都很多谢谢,谢谢.

Nic*_*ica 213

关于seek()没有太多担心.

首先,在打开文件上操作时很有用.

重要的是要注意它的语法如下:

fp.seek(offset, from_what)
Run Code Online (Sandbox Code Playgroud)

fp你正在使用的文件指针在哪里; offset意味着你将移动多少个职位; from_what定义你的参考点:

  • 0:表示您的参考点是文件的开头
  • 1:表示您的参考点是当前文件位置
  • 2:表示您的参考点是文件的结尾

如果省略,则from_what默认为0.

永远不要忘记,在管理文件时,您当前正在处理的文件中始终存在一个位置.刚刚打开时,该位置是文件的开头,但是当您使用它时,您可以前进.
seek当你需要walk沿着那个打开的文件时,它将对你有用,就像你正在进入的路径一样.

  • 用于解释第二个参数的+1,虽然我想补充说你应该使用常量`os.SEEK_SET`,`os.SEEK_CUR`和`os.SEEK_END`而不是魔术数字`0`,`分别为1`和`2`. (107认同)
  • 实际上,在追加模式下,我们可以使用fp.seek(0,0)来查找文件的开头,但是一旦您尝试写入该文件,seek将再次重置为文件的末尾,并且内容将被写在末尾。 (3认同)

DGH*_*DGH 38

打开文件时,系统指向文件的开头.你做的任何读或写将从一开始就发生.seek()操作将指针移动到文件的其他部分,以便您可以在该位置读取或写入.

因此,如果要读取整个文件但跳过前20个字节,请打开文件,搜索(20)以移动到要开始读取的位置,然后继续读取文件.

或者说你想要读取每个第10个字节,你可以编写一个寻找(9,1)的循环(相对于当前位置向前移动9个字节),读取一个字节,重复.

  • -1:这个答案无法解释第二个参数,实际上,正如措辞所示,它听起来像是第二个参数决定了读取了多少字节. (14认同)