Skip to content

Instantly share code, notes, and snippets.

@nottrobin
Created January 26, 2016 01:42
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nottrobin/3d675653244f8814838a to your computer and use it in GitHub Desktop.
Save nottrobin/3d675653244f8814838a to your computer and use it in GitHub Desktop.
Change directory / working directory context processor for python
import os
from contextlib import contextmanager
@contextmanager
def working_directory(path):
"""
A context manager which changes the working directory to the given
path, and then changes it back to its previous value on exit.
Usage:
> # Do something in original directory
> with working_directory('/my/new/path'):
> # Do something in new directory
> # Back to old directory
"""
prev_cwd = os.getcwd()
os.chdir(path)
try:
yield
finally:
os.chdir(prev_cwd)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment