Czy istnieje wieloplatformowy sposób na uzyskanie ścieżki do temp
katalogu w Pythonie 2.6?
Na przykład pod Linuksem, który byłby /tmp
, podczas gdy pod XP C:\Documents and settings\[user]\Application settings\Temp
.
Czy istnieje wieloplatformowy sposób na uzyskanie ścieżki do temp
katalogu w Pythonie 2.6?
Na przykład pod Linuksem, który byłby /tmp
, podczas gdy pod XP C:\Documents and settings\[user]\Application settings\Temp
.
Odpowiedzi:
To byłby moduł tymczasowy .
Ma funkcje pobierania katalogu tymczasowego, a także kilka skrótów do tworzenia w nim plików tymczasowych i katalogów, nazwanych lub nienazwanych.
Przykład:
Dla kompletności, oto jak szuka katalogu tymczasowego, zgodnie z dokumentacją:
TMPDIR
zmienną środowiskową.TEMP
zmienną środowiskową.TMP
zmienną środowiskową.Wimp$ScrapDir
zmienną środowiskową.C:\TEMP
,C:\TMP
,\TEMP
, i\TMP
, w tej kolejności./tmp
,/var/tmp
oraz/usr/tmp
, w takiej kolejności.źródło
/var/folders/<garbage/here>
zamiast,/tmp
ponieważ tak$TMPDIR
jest ustawiony. Zobacz tutaj .tempfile.gettempdir()
rozwiązujeC:\users\user\AppData\Local\Temp
. Niestety długa ścieżka.To powinno zrobić, co chcesz:
Dla mnie na moim systemie Windows otrzymuję:
a na moim Linux-ie otrzymuję:
źródło
Używam:
To dlatego, że na MacOS, czyli Darwin,
tempfile.gettempdir()
ios.getenv('TMPDIR')
zwraca wartość takich jak'/var/folders/nj/269977hs0_96bttwj2gs_jhhp48z54/T'
; jest to taki, którego nie zawsze chcę.źródło
Najprostszy sposób, oparty na komentarzu i odpowiedzi @ nosklo :
Ale jeśli chcesz ręcznie kontrolować tworzenie katalogów:
W ten sposób możesz łatwo posprzątać po sobie, gdy skończysz (dla prywatności, zasobów, bezpieczeństwa itp.) Dzięki:
Jest to podobne do działania aplikacji takich jak Google Chrome i Linux
systemd
. Używają tylko krótszego skrótu szesnastkowego i prefiksu specyficznego dla aplikacji do „reklamowania” swojej obecności.źródło
tempfile.mkdtemp()
zamiast tegomkdtemp()
którą zasugerowałeś.