Назад к вопросам
Junior
68
questionbank
Что делают методы `tell` и `seek` в Python?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Метод tell() возвращает текущую позицию указателя файла в байтах. Метод seek(offset, origin) перемещает указатель файла на заданное смещение.
Параметры метода seek():
offset: Количество байт для перемещения.origin: Точка отсчета для смещения. Возможные значения:- 0 (или
io.SEEK_SET): Начало файла (по умолчанию). - 1 (или
io.SEEK_CUR): Текущая позиция указателя файла. - 2 (или
io.SEEK_END): Конец файла.
- 0 (или
Пример использования:
# Создаем файл для примера
with open("example.txt", "w") as f:
f.write("Hello, world!")
# Открываем файл для чтения
with open("example.txt", "r") as f:
# Текущая позиция - начало файла (0)
print(f.tell()) # Выведет 0
# Считываем 5 символов
content = f.read(5)
print(content) # Выведет Hello
# Текущая позиция после чтения (5 байт)
print(f.tell()) # Выведет 5
# Переходим на 3 байта от начала файла
f.seek(3, 0)
print(f.tell()) # Выведет 3
# Считываем оставшуюся часть
content = f.read()
print(content) # Выведет lo, world!
# Текущая позиция - конец файла
print(f.tell()) # Выведет 13
# Переходим на 5 байт назад от конца файла
f.seek(-5, 2)
print(f.tell()) # Выведет 8
# Считываем
content = f.read()
print(content) # Выведет world!
Важно: В текстовом режиме ('r', 'w', 'a') seek() и tell() могут работать некорректно с некодированными данными или при использовании специальных символов. Рекомендуется использовать двоичный режим ('rb', 'wb', 'ab') для точного позиционирования.