Python如何寻求功能?

时间:2012-11-07 21:41:30

标签: python seek

如果我有一些类似文件的对象并执行以下操作:

F = open('abc', 'r')
...
loc = F.tell()
F.seek(loc-10)

寻求做什么?是从文件的开头开始读取loc-10个字节吗?或者仅仅备份10个字节是否足够聪明?

5 个答案:

答案 0 :(得分:9)

它是特定于OS和libc的。 file.seek()操作被委托给实际操作系统级文件的fseek(3) C调用。

答案 1 :(得分:8)

根据Python 2.7's docs

  

file.seek(offset[, whence])

     

设置文件的当前位置,如stdio的fseek()。从哪里来   参数是可选的,默认为os.SEEK_SET或0(绝对文件   定位);其他值是os.SEEK_CUR或1(寻找相对于   当前位置)和os.SEEK_END或2(相对于文件的搜索   端)。

假设您想要相对于您的位置返回10个字节:

file.seek(-10, 1)

答案 2 :(得分:4)

它应该足够聪明才能备份10个字节,但我认为细节实际上取决于您正在使用的文件系统/ OS /运行时库。

请注意,如果您只想备份10个字节,则无需tell

F.seek(-10,1)

答案 3 :(得分:1)

file.seek() set the current read/write position.
file.tell() Returns the file's current position.

因此,当您完成**loc = F.tell()**时,会将当前文件位置存储到 loc 变量中。

**file.seek()**接受两个参数**file.seek(offset, from)**

因此,您需要定义文件的偏移位置。 **from**取以下值之一 0,1,2 (0 =开头,1 =当前,2 =结束)

这就是它的工作方式。

答案 4 :(得分:-4)

根据文档,您需要f.seek(offset, from_what),或者在您的情况下,F.seek(-10, loc)

你的例子应该有效,但这更明确