执行os.getcwd()时出错?


问题内容

我遇到了一个很奇怪的问题。我进入一些测试以调试出了什么问题,当我尝试找到当前的工作目录时,出现以下错误:

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

有什么问题,如何查看当前的工作目录?


问题答案:

您当前的工作目录 不再存在

$ 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'

但是,如果您在测试套件中遇到此问题,则说明该测试套件使用的是临时工作目录,此目录已被清理。