Лучший путь копирования файла и позволяя питон удалить временный, когда она закрыта :
Я на самом деле думаю, что вы бы лучше использовать os.link
:
with tempfile.NamedTemporaryFile(dir=os.path.dirname(actual_name)) as f:
f.write(pdf)
os.link(f.name, actual_name)
Используется os.link
, чтобы создать жесткую ссылку на временный файл, который будет сохраняться после того, как временный файл будет автоматически удален.
Этот код имеет ряд преимуществ:
- Мы используем
tempfile
объект в качестве менеджера контекста, поэтому мы не нужно беспокоиться о закрытии ее в явном виде.
- Поскольку мы создаем жесткую ссылку на файл, а не копируем его, , нам не нужно беспокоиться о дискового пространства или потреблении времени из-за копирования большого файла.
- Поскольку мы не копируем данные, нам не нужно звонить
f.flush()
. Файл будет автоматически очищен, когда он будет закрыт.
Возможный дубликат [Как сохранить на диске временный файл с помощью Python?] (Http://stackoverflow.com/questions/94153/how-do-i-persist-to-disk-a-temporary -file-using-python) – ThiefMaster