如果我有一些类似文件的对象并执行以下操作:
F = open('abc', 'r')
...
loc = F.tell()
F.seek(loc-10)
寻求做什么?是从文件开头开始读取loc-10
字节吗?还是仅备份10个字节就足够聪明了吗?
它是特定于OS和libc的。 file.seek()
操作委托给实际OS级文件的fseek(3)
C调用。
file.seek(offset[, whence])
设置文件的当前位置,例如stdio的fseek()。起源参数是可选的,默认为os.SEEK_SET或0(绝对文件定位);其他值为os.SEEK_CUR或1(相对于当前位置)和OS.SEEK_END或2(相对于文件结束)。
说您想向后退10个字节:
file.seek(-10, 1)
应该足够聪明,只备份10个字节,但是我想细节确实取决于您使用的文件系统/ OS /运行时库。
请注意,如果您只想备份10个字节,则不需要tell
。
F.seek(-10,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 =结束)
f.seek(offset, from_what)
,或者您需要的情况下,F.seek(-10, loc)
您的示例应该起作用,但这更明确了