os.getcwd() 抛出异常

2 投票
1 回答
2144 浏览
提问于 2025-04-16 18:43

我遇到了一个情况,就是当前的目录变得无效了(比如,有程序把它删除了)。我的Python脚本调用了 os.getcwd(),结果出现了以下错误:

OSError: [Errno 2] 没有这样的文件或目录

理想情况下,我希望我的脚本在这种情况下能自动切换到上一级目录。请问有什么好的方法来实现这个呢?

另外,如果我在命令行中尝试 ls,我会看到 ls: 无法打开目录 .: 过期的 NFS 文件句柄

1 个回答

2
理想情况下,我希望我的脚本在这种情况下能自动切换到上级目录。实现这个的推荐策略是什么?

只需使用 try/except 代码块就可以了,这就是它的用途嘛 :)

try:
    os.getcwd()
except OSError:
    os.chdir("..")
    os.getcwd()
或者类似的东西...

[编辑] 不过我觉得这种情况对你的应用来说真的很糟糕,比如目录被删除了,或者NFS连接断了等等,可能不应该仅仅通过切换目录来忽略这个问题——当然这要看你的应用具体情况...

撰写回答