_lib._tmpdirs

Contexts for with statement providing temporary directories

Module Contents

Functions

tempdir()

Create and return a temporary directory. This has the same behavior as mkdtemp but can be used as a context manager.

Upon exiting the context, the directory and everthing contained in it are removed.

>>> import os
>>> with tempdir() as tmpdir:
...     fname = os.path.join(tmpdir, 'example_file.txt')
...     with open(fname, 'wt') as fobj:
...         _ = fobj.write('a string\\n')
>>> os.path.exists(tmpdir)
False
in_tempdir()

Create, return, and change directory to a temporary directory

>>> import os
>>> my_cwd = os.getcwd()
>>> with in_tempdir() as tmpdir:
...     _ = open('test.txt', 'wt').write('some text')
...     assert os.path.isfile('test.txt')
...     assert os.path.isfile(os.path.join(tmpdir, 'test.txt'))
>>> os.path.exists(tmpdir)
False
>>> os.getcwd() == my_cwd
True
in_dir(dir=None)

Change directory to given directory for duration of with block

Useful when you want to use in_tempdir for the final test, but you are still debugging. For example, you may want to do this in the end:

>>> with in_tempdir() as tmpdir:
...     # do something complicated which might break
...     pass

But indeed the complicated thing does break, and meanwhile the in_tempdir context manager wiped out the directory with the temporary files that you wanted for debugging. So, while debugging, you replace with something like:

>>> with in_dir() as tmpdir: # Use working directory by default
...     # do something complicated which might break
...     pass

You can then look at the temporary file outputs to debug what is happening, fix, and finally replace in_dir with in_tempdir again.