Насчет того, seek()
что беспокоиться особо не о чем.
Прежде всего, это полезно при работе с открытым файлом.
Важно отметить, что его синтаксис следующий:
fp.seek(offset, from_what)
где fp
указатель файла, с которым вы работаете; offset
означает, на сколько позиций вы переместитесь; from_what
определяет вашу точку отсчета:
- 0 : означает, что ваша контрольная точка - это начало файла
- 1 : означает, что вашей точкой отсчета является текущая позиция файла
- 2 : означает, что ваша контрольная точка - конец файла
если опущено, по from_what
умолчанию 0.
Никогда не забывайте, что при управлении файлами всегда будет место внутри этого файла, над которым вы сейчас работаете. Когда вы просто открываете эту позицию, это начало файла, но по мере работы с ней вы можете продвигаться вперед.
seek
будет вам полезен, когда вам нужно будет пройти walk
по этому открытому файлу, как путь, по которому вы идете.
os.SEEK_SET
,os.SEEK_CUR
иos.SEEK_END
вместо магических чисел0
,1
и2
, соответственно.Когда вы открываете файл, система указывает на начало файла. Любое чтение или запись будет происходить с самого начала. А
seek()
операция перемещает этот указатель на какую - либо другую часть файла , так что вы можете читать или писать на этом месте.Итак, если вы хотите прочитать весь файл, но пропустить первые 20 байтов, откройте файл,
seek(20)
чтобы перейти туда, где вы хотите начать чтение, а затем продолжите чтение файла.Или, скажем, вы хотите прочитать каждый 10-й байт, вы можете написать цикл, который выполняет
seek(9, 1)
(перемещает на 9 байтов вперед относительно текущих позиций)read(1)
(читает один байт), повторяется.источник
seek
Функция Ожидайте приведены смещение в байтах.Пример файла Ascii:
Итак, если у вас есть текстовый файл со следующим содержанием:
simple.txt
Вы можете перейти на 1 байт, чтобы пропустить первый символ, как показано ниже:
Ширина сборки примера двоичного файла:
источник
Для строк забудьте об использовании WHENCE: используйте f.seek (0) для размещения в начале файла и f.seek (len (f) +1) для позиции в конце файла. Используйте open (file, "r +") для чтения / записи в любом месте файла. Если вы используете «a +», вы сможете писать (добавлять) только в конец файла, независимо от того, где вы устанавливаете курсор.
источник