РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
166 of 307 menu

Метод seek

Метод seek применяется к объекту UploadFile и перемещает внутренний указатель чтения файла на заданную позицию. Первым параметром передаётся смещение в байтах, вторым необязательным параметром - точка отсчёта whence. По умолчанию whence равен 0, то есть смещение считается от начала файла. Значение 1 отсчитывает смещение от текущей позиции, а 2 - от конца файла. Метод ничего не возвращает.

Синтаксис

await file.seek(offset) await file.seek(offset, whence)

Пример

Давайте загрузим файл и перемотаем указатель чтения в начало перед повторным чтением:

from fastapi import FastAPI, UploadFile, File app = FastAPI() @app.post('/upload/') async def upload(file: UploadFile = File()): content = await file.read() await file.seek(0) again = await file.read() return {'size': len(content), 'again': len(again)}

Результат выполнения кода:

{"size": 5, "again": 5}

Пример

Давайте прочитаем файл дважды, каждый раз возвращая указатель в начало через seek:

from fastapi import FastAPI, UploadFile, File app = FastAPI() @app.post('/upload/') async def upload(file: UploadFile = File()): first = await file.read() await file.seek(0) second = await file.read() return {'first': first.decode(), 'second': second.decode()}

Результат выполнения кода:

{"first": "abcde", "second": "abcde"}

Пример

Давайте переместим указатель на середину файла и прочитаем оставшуюся часть:

from fastapi import FastAPI, UploadFile, File app = FastAPI() @app.post('/upload/') async def upload(file: UploadFile = File()): await file.seek(2) part = await file.read() return {'part': part.decode()}

Результат выполнения кода для файла с содержимым 'abcde':

{"part": "cde"}

Смотрите также

  • класс UploadFile,
    который представляет загруженный файл
  • метод read,
    который читает содержимое файла
  • метод close,
    который закрывает файл
  • атрибут size,
    который хранит размер файла в байтах
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить