erstellen, wie ein temporäres Verzeichnis erstellen und den Pfad/Dateinamen in PythonWie ein temporäres Verzeichnis und erhalten den Pfad/Dateinamen in Python
79
A
Antwort
136
4
Verwenden Sie das Modul tempfile. dem Bereinigungs die tmpdir auch auf Ausnahmen
19
auf eine andere Antwort zu erweitern, hier ein ziemlich vollständiges Beispiel ist:
import contextlib
import os
import shutil
import tempfile
@contextlib.contextmanager
def cd(newdir, cleanup=lambda: True):
prevdir = os.getcwd()
os.chdir(os.path.expanduser(newdir))
try:
yield
finally:
os.chdir(prevdir)
cleanup()
@contextlib.contextmanager
def tempdir():
dirpath = tempfile.mkdtemp()
def cleanup():
shutil.rmtree(dirpath)
with cd(dirpath, cleanup):
yield dirpath
def main():
with tempdir() as dirpath:
pass # do something here
5
In Python 3.2 und später gibt es eine nützliche contextmanager für diese in der stdlib https://docs.python.org/3/library/tempfile.html#tempfile.TemporaryDirectory
Wenn Sie dies in einem Test verwenden, entfernen Sie (shuthil.rmtree) das Verzeichnis, da es nach der Verwendung nicht automatisch gelöscht wird. "Der Benutzer von mkdtemp() ist dafür verantwortlich, das temporäre Verzeichnis und seinen Inhalt zu löschen, wenn es damit fertig ist." Siehe: http://docs.python.org/2/library/tempfile.html#tempfile.mkdtemp –
Dies muss die akzeptierte Antwort sein! – gregoltsov
In python3 können Sie 'mit tempfile.TemporaryDirectory() als dirpath:' tun, und das temporäre Verzeichnis wird beim Beenden des Kontextmanagers automatisch bereinigt. https://docs.python.org/3.4/library/tempfile.html#tempfile.TemporaryDirectory – Symmetric