I also really like this idea. Though I wonder if it might be a better fit for `contextlib` rather than `os`? Can see arguments both ways (and it's a minor detail, anyway).
Alex
On 14 Sep 2021, at 20:55, Paul Moore <p.f.moore@gmail.com> wrote:
On Tue, 14 Sept 2021 at 20:44, Marc-Andre Lemburg <mal@egenix.com> wrote:
I sometimes write Python scripts which need to work in specific
work directories.
When putting such code into functions, the outer function typically
does not expect the current work dir (CWD) to be changed, so wrap the
code which need the (possibly) modified CWD using a simply context
manager along the lines of:
class workdir:
def __init__(self, dir):
self.dir = dir
def __enter__(self):
self.curdir = os.getcwd()
os.chdir(self.dir)
def __exit__(self, *exc):
os.chdir(self.curdir)
return False
Would there be interest in adding something like this to the os module
as os.workdir() ?
I've needed (and implemented my own version of) this often enough thatI'd be in favour of it. Of course, as you show, it's not hard to writeit yourself, so I can live with it not getting implemented, too :-)Paul_______________________________________________Python-ideas mailing list -- python-ideas@python.orgTo unsubscribe send an email to python-ideas-leave@python.orghttps://mail.python.org/mailman3/lists/python-ideas.python.org/Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/I6YFWYNUAV7G6DNPZTBJ6T3SGJDPGBJL/Code of Conduct: http://python.org/psf/codeofconduct/