Существует ли кроссплатформенный способ получения пути к temp
каталогу в Python 2.6?
Например, под Linux это было бы /tmp
, а под XP C:\Documents and settings\[user]\Application settings\Temp
.
Существует ли кроссплатформенный способ получения пути к temp
каталогу в Python 2.6?
Например, под Linux это было бы /tmp
, а под XP C:\Documents and settings\[user]\Application settings\Temp
.
Ответы:
Это был бы модуль временного файла .
Он имеет функции для получения временного каталога, а также имеет несколько ярлыков для создания временных файлов и каталогов, названных или безымянных.
Пример:
Для полноты, вот как он ищет временный каталог, согласно документации:
TMPDIR
переменной среды.TEMP
переменной среды.TMP
переменной среды.Wimp$ScrapDir
переменной среды.C:\TEMP
,C:\TMP
,\TEMP
и\TMP
, в таком порядке./tmp
,/var/tmp
и/usr/tmp
, в таком порядке.источник
/var/folders/<garbage/here>
вместо того,/tmp
потому что так$TMPDIR
настроено. Смотрите здесь .tempfile.gettempdir()
разрешается вC:\users\user\AppData\Local\Temp
. К сожалению, долгий путь.Это должно делать то, что вы хотите:
Для меня на моей коробке Windows, я получаю:
и на моей коробке Linux я получаю:
источник
Я использую:
Это происходит потому , что на MacOS, т.е. Дарвина,
tempfile.gettempdir()
иos.getenv('TMPDIR')
возвращает значение , такие как'/var/folders/nj/269977hs0_96bttwj2gs_jhhp48z54/T'
; это то, что я не всегда хочу.источник
Самый простой способ, основанный на комментариях и ответах @ nosklo :
Но если вы хотите вручную контролировать создание каталогов:
Таким образом, вы можете легко убирать за собой, когда вы закончите (для конфиденциальности, ресурсов, безопасности и т. Д.) С помощью:
Это похоже на то, что делают такие приложения, как Google Chrome и Linux
systemd
. Они просто используют более короткий шестнадцатеричный хэш и специфичный для приложения префикс, чтобы «рекламировать» свое присутствие.источник
tempfile.mkdtemp()
вместо этогоmkdtemp()
вы предложили.