如何在更改目录后返回上一个工作目录?

14 投票
3 回答
35308 浏览
提问于 2025-04-17 13:21

在Python中,我怎么才能实现和命令行里 cd - 一样的效果?也就是说,在我改变工作目录之后,怎么才能把它设置回之前的目录?

3 个回答

0

这个功能并不是直接支持的。你可以在改变当前工作目录之前,先查看一下现在的工作目录是什么,然后把它存储在一个变量里;这样的话,之后就可以再切换回那个目录了。

为了简化这个过程,可以考虑使用上下文管理器,这样在临时改变目录后,可以自动恢复原来的路径。例如:

import os
from contextlib import contextmanager

@contextmanager
def temp_chdir(where):
    old = os.getcwd()
    try:
        os.chdir(where)
        yield
    finally:
        os.chdir(old)

这段代码允许你像这样使用

with temp_chdir('/some/other/path') as f:
    print(os.listdir('.'))

即使在执行过程中出现了错误,with块结束后,当前工作目录也会被恢复。

0
path = os.path.dirname(__file__)
print(path)

这段代码会打印出文件的当前工作目录,比如说是 C:\Users\Test\Documents\CodeRevamp\Joke。

path2 = os.path.dirname(path)
print(path2)

这段代码会打印出文件的父目录,也就是 C:\Users\Test\Documents\CodeRevamp。

19

你想要改变工作目录吗?Python中的OS模块有很多功能可以帮助你做到这一点。

import os
os.chdir( path )

path设置为".."可以让你上移一个目录。如果你想在改变目录之前或之后检查一下自己在哪,可以使用getcwd()这个命令:

mycwd = os.getcwd()
os.chdir("..")
#do stuff in parent directory
os.chdir(mycwd)     # go back where you came from

撰写回答