Python 3 - 文件 seek() 方法

  • 描述

    方法seek()将文件的当前位置设置为偏移量。whence 参数是可选的,默认为 0,表示绝对文件定位,其他值为 1,表示相对于当前位置查找,2 表示相对于文件末尾查找。
    没有返回值。请注意,如果打开文件以使用“a”或“a+”进行追加,则任何 seek() 操作都将在下次写入时撤消。
    如果文件只是为了使用 'a' 在追加模式下写入而打开,则此方法本质上是一个无操作,但它对于在启用读取的追加模式下打开的文件(模式 'a+')仍然有用。
    如果使用“t”以文本模式打开文件,则只有 tell() 返回的偏移量是合法的。使用其他偏移量会导致未定义的行为。
    请注意,并非所有文件对象都是可搜索的。
  • 句法

    以下是语法seek()方法 -
    
    fileObject.seek(offset[, whence])
    
  • 参数

    • offset− 这是文件中读/写指针的位置。
    • whence− 这是可选的,默认为 0,表示绝对文件定位,其他值为 1,表示相对于当前位置查找,2 表示相对于文件末尾查找。
  • 返回值

    此方法不返回任何值。
  • 例子

    以下示例显示了 seek() 方法的用法。
    
    Assuming that 'foo.txt' file contains following text:
    This is 1st line
    This is 2nd line
    This is 3rd line
    This is 4th line
    This is 5th line
    
    
    #!/usr/bin/python3
    # Open a file
    fo = open("foo.txt", "r+")
    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