执行os.getcwd()时出错?

9 投票
1 回答
14274 浏览
提问于 2025-04-18 07:42

我遇到了一个对我来说挺奇怪的问题。我开始进行一些测试,想要调试一下到底出了什么问题。当我尝试查看当前的工作目录时,却收到了以下错误信息:

ipdb> os.getcwd()
*** OSError: [Errno 2] No such file or directory

这个问题是什么呢?我该怎么查看当前的工作目录呢?

1 个回答

16

你现在的工作目录已经不存在了

$ mkdir deleteme
$ cd deleteme/
$ ../bin/python
Python 2.7.6 (default, Apr 28 2014, 17:17:35) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.getcwd()
'/Users/mj/Development/venvs/stackoverflow-2.7/deleteme'
>>> ^Z
[1]+  Stopped                 ../bin/python
$ cd ..
$ rmdir deleteme
$ fg
../bin/python   (wd: ~/Development/venvs/stackoverflow-2.7/deleteme)

>>> os.getcwd()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 2] No such file or directory

解决这个问题的方法是把你的工作目录换成一个存在的目录,可以用os.chdir()来实现:

>>> os.chdir('/tmp')
>>> os.getcwd()
'/private/tmp'

不过,如果你在测试套件中遇到这个问题,那说明这个测试套件使用了一个临时的工作目录,而这个目录已经被清理掉了。

撰写回答