Python,如何在本地更改目录?

时间:2016-02-21 06:00:23

标签: python

使用OS模块更改目录时,将进行全局更改。有没有办法在本地更改目录?

编辑:是的,对不起。本地在另一个线程。当您使用线程模块时,普通的chdir会在所有线程上更改工作目录。

2 个答案:

答案 0 :(得分:1)

使用contextlib2.contextmanager编写装​​饰器/上下文管理器并不是很困难。

import contextlib2
import os

@contextlib2.contextmanager
def restore_chdir(dir_):
    orig= os.getcwd()
    os.chdir(dir_)
    try: 
        yield
    finally: 
        os.chdir(orig)

您现在可以将其用作:

with restore_chdir('/foo'):
    ...

或作为功能装饰者。

答案 1 :(得分:0)

您可以使用os模块定义一个函数,该模块可以恢复目录。

import os
def func():
  original = os.getcwd()
  os.chdir("Your Directory Name")
  ## Do something here
  os.chdir(original)