[Python-ideas] chdir context manager

Oleg Broytman phd at phdru.name
Sat Jan 19 15:02:19 CET 2013


On Sat, Jan 19, 2013 at 01:46:26PM +0000, Vinay Sajip <vinay_sajip at yahoo.co.uk> wrote:
> Daniel Shahaf <d.s at ...> writes:
>> > Joao S. O. Bueno wrote on Sat, Jan 19, 2013 at 10:17:57 -0200:
> > > with temp_dir("/tmp"):
> > > # things that perform in /tmp
> > > # directory is restored.
> > 
> > +1
>> I implemented this in distlib as:
>> @contextlib.contextmanager
> def chdir(d):
> cwd = os.getcwd()
> try:
> os.chdir(d)
> yield
> finally:
> os.chdir(cwd)
>> which could perhaps be placed in shutil, so usage would be:
>> with shutil.chdir('new_dir'):
> # work with new_dir as current dir
> # directory restored when you get here.

 Pushd or pushdir would be a better name, IMHO.
https://en.wikipedia.org/wiki/Pushd_and_popd
 Quite a known pair of names.
Oleg.
-- 
 Oleg Broytman http://phdru.name/ phd at phdru.name
 Programmers don't die, they just GOSUB without RETURN.


More information about the Python-ideas mailing list

AltStyle によって変換されたページ (->オリジナル) /