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):
    pass
как создать временный каталог и получить путь/имя файла в python