如何在更改目录后返回上一个工作目录?
在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