file.seek(offset[, whence])
file
- объект файлаoffset
- int
байтов, смещение указателя чтения/записи файла.whence
- int
, абсолютное позиционирование указателя.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()