Python的搜索功能如何工作?

jlc*_*lin 6 python seek

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

F = open('abc', 'r')
...
loc = F.tell()
F.seek(loc-10)
Run Code Online (Sandbox Code Playgroud)

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

Ign*_*ams 9

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


Tan*_*ash 8

根据Python 2.7的文档:

file.seek(offset[, whence])

设置文件的当前位置,如stdio的fseek().whence参数是可选的,默认为os.SEEK_SET或0(绝对文件定位); 其他值是os.SEEK_CUR或1(相对于当前位置搜索)和os.SEEK_END或2(相对于文件的结尾搜索).

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

file.seek(-10, 1)
Run Code Online (Sandbox Code Playgroud)