执行os.getcwd()时出错?
我遇到了一个对我来说挺奇怪的问题。我开始进行一些测试,想要调试一下到底出了什么问题。当我尝试查看当前的工作目录时,却收到了以下错误信息:
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'
不过,如果你在测试套件中遇到这个问题,那说明这个测试套件使用了一个临时的工作目录,而这个目录已经被清理掉了。