Подтвердить что ты не робот

Как создать временный файл в django, а затем уничтожить

Я делаю некоторую обработку файлов, и для генерации файла мне нужно создать временный файл из существующих данных, а затем использовать этот файл для ввода моей функции.

Но я смущен, где я должен сохранить этот файл, а затем удалить его.

Есть ли временное место, где файлы автоматически удаляются после сеанса пользователя.

4b9b3361

Ответ 1

Python имеет tempfile module именно для этой цели. Вам не нужно беспокоиться о местоположении или удалении файла, он работает на всех поддерживаемых платформах.

Существует три типа временных файлов:

  • tempfile.TemporaryFile - только базовый временный файл,
  • tempfile.NamedTemporaryFile - "Эта функция работает точно так же, как и TemporaryFile(), за исключением того, что в файле гарантируется наличие видимого имени в файловой системе (в Unix запись каталога не отслаивается). Это имя можно найти из атрибута name файлового объекта.",
  • tempfile.SpooledTemporaryFile - "Эта функция работает точно так же, как и TemporaryFile(), за исключением того, что данные буферизуются в памяти до тех пор, пока размер файла не превысит max_size или пока не будет вызван метод fileno(), после чего содержимое записываются на диск, и операция выполняется так же, как с помощью TemporaryFile().",

EDIT: пример использования, который вы просили, может выглядеть так:

>>> with TemporaryFile() as f:
        f.write('abcdefg')
        f.seek(0)  # go back to the beginning of the file
        print(f.read())


abcdefg

Ответ 2

Вы должны использовать что-то из модуля tempfile. Я думаю, что у него есть все, что вам нужно.