请原谅我在这里的困惑,但我已经阅读了关于python中seek()函数的文档(在不得不使用它之后),尽管它对我有所帮助,但我仍然对它的实际意义感到困惑,谢谢。
发布于 2012-07-28 06:38:48
关于seek(),没什么好担心的。
首先,它在操作打开的文件时很有用。
需要注意的是,它的语法如下:
fp.seek(offset, from_what)其中fp是您正在使用的文件指针;offset表示您将移动的位置数;from_what定义您的参考点:
表示您的参考点是文件的end
如果省略,则from_what默认为0。
不要忘记,在管理文件时,文件中总会有一个您当前正在处理的位置。刚打开时,该位置是文件的开始位置,但当您使用它时,您可能会前进。
当您需要沿着打开的文件执行walk时,seek将非常有用,就像您要进入的路径一样。
发布于 2012-07-28 06:34:39
当您打开文件时,系统指向文件的开头。您所做的任何读或写操作都将从头开始。seek()操作将该指针移动到文件的其他部分,以便您可以在该位置读取或写入。
因此,如果您想读取整个文件但跳过前20个字节,请打开文件,使用seek(20)移动到您想要开始读取的位置,然后继续读取文件。
或者假设你想每10个字节读取一次,你可以编写一个循环来重复seek(9, 1) (相对于当前位置向前移动9个字节),read(1) (读取一个字节),重复。
发布于 2018-08-11 07:24:44
seek函数expect是以字节为单位偏移量。
Ascii文件示例:
因此,如果您有一个包含以下内容的文本文件:
simple.txt
abc您可以跳过1字节的以跳过第一个字符,如下所示:
fp = open('simple.txt', 'r')
fp.seek(1)
print fp.readline()
>>> bc二进制文件收集宽度示例:
fp = open('afile.png', 'rb')
fp.seek(16)
print 'width: {0}'.format(struct.unpack('>i', fp.read(4))[0])
print 'height: ', struct.unpack('>i', fp.read(4))[0]注意:一旦调用
read,就会改变读取头的位置,它的行为类似于seek。
https://stackoverflow.com/questions/11696472
复制相似问题