Метод close
Метод close применяется к объекту UploadFile
и закрывает нижележащий файловый объект.
После вызова метода файл становится недоступным для чтения и записи.
Метод не принимает параметров и не возвращает значения.
Обычно вызывается автоматически после завершения обработки запроса,
но может быть вызван вручную, если файл нужно закрыть раньше.
Синтаксис
await upload_file.close()
Пример
Давайте загрузим файл и явно закроем его после чтения:
from fastapi import FastAPI, UploadFile
app = FastAPI()
@app.post('/upload/')
async def upload_file(file: UploadFile):
content = await file.read()
await file.close()
return {'filename': file.filename, 'size': len(content)}
Результат выполнения кода при загрузке файла 'abcde.txt':
{"filename": "abcde.txt", "size": 5}
Пример
Давайте закроем файл в блоке finally,
чтобы гарантировать освобождение ресурсов даже при ошибке:
<+python+>
from fastapi import FastAPI, UploadFile
app = FastAPI()
@app.post('/upload/')
async def upload_file(file: UploadFile):
try:
content = await file.read()
return {'content': content.decode()}
finally:
await file.close()
<-python+>
Результат выполнения кода при загрузке файла с текстом 'hello':
{"content": "hello"}
Смотрите также
-
класс
UploadFile,
который представляет загруженный файл -
метод
read,
который читает содержимое файла -
метод
seek,
который перемещает указатель в файле -
атрибут
filename,
который хранит имя загруженного файла