Я использую пакет Python, cdo, который сильно зависит от tempfile для хранения промежуточных результатов. Созданные временные файлы довольно большие, и при выполнении больших вычислений я столкнулся с проблемой, что каталог /tmp
был заполнен, и скрипт завершился ошибкой disk full
(мы говорим о 10–100 ГБ). Я нашел решение проблемы, создав локальную папку, скажем, $HOME/tmp
, а затем выполнив
import tempfile
tempfile.tempdir='$HOME/tmp'
перед импортом модуля cdo
. Хотя это работает для меня, это несколько громоздко, если я хочу, чтобы другие использовали мои сценарии. Поэтому мне было интересно, будет ли более элегантный способ решить проблему, например, периодически сообщая tmpfile
о необходимости очистки всех временных файлов (обычно это делается только после завершения скрипта). С моей стороны это было бы возможно, потому что я запускаю длинный цикл, который создает один именованный файл на каждой итерации, и все временные файлы, созданные во время этой итерации, впоследствии будут отброшены.
tempfile
, и мне нужно удалить до завершения скрипта. К сожалению, я не могу контролировать параметры, которые cdo передает экземплярамTemporaryFile()
при создании. - person Thomas Kühn   schedule 21.06.2017