PyInstaller, Windows10: как получить путь к папке appdata/local/temp
При запуске exe'шника, который собран с помощью pyinstaller, все внутренности этого exe'шника распаковываются в папку DISK:\Users\Users\AppData\Local\Temp\_MEI000000 (цифры меняются с кажым запуском).
Однако, после завершения команды (sys.exit() / os.system('exit') / os.system('taskkill /IM cmd.exe /F') ) эти временные папки не удаляются. В результате, если запустить программу раз 100, то создается 100 этих временных папок, которые уже весят достаточно много.
Я знаю, как в коде получить путь текущей временной папки (по документации pyinstaller):
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
try:
# PyInstaller creates a temp folder and stores path in _MEIPASS
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
В принципе, представляю, как удалять все временные папки, кроме текущей:
path = 'local/temp path/'
for i in os.listdir(path): # запускаем цикл в списке папок и файлов в local/temp
if i startswith('_MEI') and not resourse_path(''): # resourse_path нужно будет просплитовать, но это не суть важно.
os.remove(path+i)
Однако все упирается в то, что я без понятия, как получить путь к appdata/Local/Temp.
Знаю только, что os.environ['APPDATA'] возвращает путь до appdata/Roaming.
Заранее благодарю, с уважением.
Ответы (1 шт):
Все оказалось очень просто.
1 вариант:
os.environ['TEMP']
2 вариант:
os.getenv('TEMP')