Gibt es eine plattformübergreifende Möglichkeit, den Pfad zum temp
Verzeichnis in Python 2.6 abzurufen?
Zum Beispiel unter Linux /tmp
, während unter XP C:\Documents and settings\[user]\Application settings\Temp
.
Gibt es eine plattformübergreifende Möglichkeit, den Pfad zum temp
Verzeichnis in Python 2.6 abzurufen?
Zum Beispiel unter Linux /tmp
, während unter XP C:\Documents and settings\[user]\Application settings\Temp
.
Antworten:
Das wäre das tempfile- Modul.
Es verfügt über Funktionen zum Abrufen des temporären Verzeichnisses sowie über einige Verknüpfungen zum Erstellen temporärer Dateien und Verzeichnisse, entweder mit oder ohne Namen.
Beispiel:
Der Vollständigkeit halber wird im Dokument gemäß der Dokumentation nach dem temporären Verzeichnis gesucht:
TMPDIR
Umgebungsvariablen benannte Verzeichnis .TEMP
Umgebungsvariablen benannte Verzeichnis .TMP
Umgebungsvariablen benannte Verzeichnis .Wimp$ScrapDir
Umgebungsvariablen benannte Verzeichnis .C:\TEMP
,C:\TMP
,\TEMP
, und\TMP
, in dieser Reihenfolge./tmp
,/var/tmp
und/usr/tmp
in dieser Reihenfolge.quelle
/var/folders/<garbage/here>
statt ,/tmp
weil das ist , wie$TMPDIR
festgelegt ist. Siehe hier .tempfile.gettempdir()
behebt zuC:\users\user\AppData\Local\Temp
. Ein leider langer Weg.Dies sollte tun, was Sie wollen:
Für mich auf meiner Windows-Box bekomme ich:
und auf meiner Linux-Box bekomme ich:
quelle
Ich benutze:
Dies liegt daran , auf MacOS, dh Darwin,
tempfile.gettempdir()
undos.getenv('TMPDIR')
gibt einen Wert wie'/var/folders/nj/269977hs0_96bttwj2gs_jhhp48z54/T'
; es ist eines, das ich nicht immer will.quelle
Der einfachste Weg, basierend auf @ nosklos Kommentar und Antwort :
Wenn Sie jedoch die Erstellung der Verzeichnisse manuell steuern möchten:
Auf diese Weise können Sie leicht nach sich selbst aufräumen, wenn Sie fertig sind (für Datenschutz, Ressourcen, Sicherheit, was auch immer) mit:
Dies ähnelt dem, was Anwendungen wie Google Chrome und Linux
systemd
tun. Sie verwenden nur einen kürzeren Hex-Hash und ein App-spezifisches Präfix, um für ihre Anwesenheit zu "werben".quelle
tempfile.mkdtemp()
stattdessen verwendenmkdtemp()
Ihnen vorgeschlagenen.