Python 文件 seek() 方法
seek() 方法设置文件的当前位置为偏移量。参数 whence 是可选的,默认值为 0,表示绝对文件定位,其他值为 1 表示相对于当前位置定位,2 表示相对于文件结尾定位。
无返回值。注意,如果文件以 ‘a’ 或 ‘a+’ 模式打开进行追加写入,任何 seek() 操作都会在下一次写入时被撤销。
如果文件仅以 ‘a’ 模式打开进行追加写入,此方法实际上是一个空操作,但对于以读取模式打开的追加写入文件(’a+’ 模式)仍然有用。
如果以文本模式打开文件使用 ‘t’,则只有调用 tell() 返回的偏移量是合法的。使用其他偏移量会导致未定义的行为。
注意,并非所有文件对象都可寻位。
语法
以下是 seek() 方法的语法:
fileObject.seek(offset[, whence])
参数
- offset - 这是文件中读/写指针的位置。
-
whence - 这是可选的,默认为0,表示绝对文件定位;其他值为1表示相对于当前位置定位,2表示相对于文件末尾定位。
返回值
此方法不返回任何值。
以下示例演示了seek()方法的用法。
假设’foo.txt’文件包含以下文本 –
This is 1st line
This is 2nd line
This is 3rd line
This is 4th line
This is 5th line
示例
# Open a file
fo = open("foo.txt", "rw+")
print ("Name of the file: ", fo.name)
line = fo.readlines()
print ("Read Line: %s" % (line))
# Again set the pointer to the beginning
fo.seek(0, 0)
line = fo.readline()
print ("Read Line: %s" % (line))
# Close opened file
fo.close()
当我们运行以上程序时,它会产生以下结果 –
Name of the file: foo.txt
Read Line: ['This is 1st line\n', 'This is 2nd line\n', 'This is 3rd line\n', 'This is 4th line\n', 'This is 5th line']
Read Line: This is 1st line