Сообщить об ошибке.

Метод file.seek() в Python, перемещает указатель в файле

Перемещает указатель чтения/записи в файле

Синтаксис:

file.seek(offset[, whence])

Параметры:

  • file - объект файла
  • offset - int байтов, смещение указателя чтения/записи файла.
  • whence - int, абсолютное позиционирование указателя.

Возвращаемое значение:

Описание:

Метод файла file.seek() устанавливает текущую позицию в байтах offset для указателя чтения/записи в файле file.

Аргумент whence является необязательным и по умолчанию равен 0. Может принимать другие значения:

  • 0 - означает, что нужно сместить указатель на offset относительно начала файла.
  • 1 - означает, что нужно сместить указатель на offset относительно текущей позиции.
  • 2 - означает, что нужно сместить указатель на offset относительно конца файла.

Обратите внимание:

  • Если файл открыт для добавления с помощью 'a' или 'a+', все операции file.seek() будут отменены при следующей записи.
  • Если файл открыт только для записи в режиме добавления с использованием 'a', Этот метод по существу используется, но он остается полезным для файлов, открытых в режиме добавления с включенным чтением - режим 'a+'.
  • Если файл открыт в текстовом режиме с помощью 't', то допустимы только смещения, возвращаемые функцией file.tell(). Использование других смещений вызывает неопределенное поведение.

Обратите внимание, что не все объекты файлов доступны для метода file.seek(). В текстовых файлах разрешены только запросы относительно начала файла, исключение составляет смещение указателя до самого конца файла с помощью txt_file.seek(0, 2).

Примеры перемещения указателя в файле для чтения/записи.

>>> text = b'This is 1st line\nThis is 2nd line\nThis is 3rd line\n'
>>> fp = open('foo.txt', 'bw+')
>>> fp.write(text)
# 51

>>> fp.seek(20, 0)
# 20
>>> fp.read(10)
# b's is 2nd l'

>>> fp.seek(10, 1)
# 40
>>> fp.read(10)
# b's 3rd line'

>>> fp.seek(-11, 2)
# 40
>>> fp.read(10)
# b's 3rd line'

>>> fp.close()