Python 执行os.getcwd()时出错?
我遇到了一个相当奇怪的问题。我进行了一些测试以调试出了什么问题,当我尝试查找当前工作目录时,出现以下错误:Python 执行os.getcwd()时出错?,python,Python,我遇到了一个相当奇怪的问题。我进行了一些测试以调试出了什么问题,当我尝试查找当前工作目录时,出现以下错误: ipdb> os.getcwd() *** OSError: [Errno 2] No such file or directory 有什么问题?如何查看当前工作目录?您当前的工作目录已不存在: 但是如果您在测试套件中遇到这种情况,那么该测试套件使用的是一个临时工作目录,该目录已被清理。我认为这不是问题所在。请看相关问题。我试图了解为什么打开该文件会引发异常,因此我认为查看脚本运行
ipdb> os.getcwd()
*** OSError: [Errno 2] No such file or directory
有什么问题?如何查看当前工作目录?您当前的工作目录已不存在:
但是如果您在测试套件中遇到这种情况,那么该测试套件使用的是一个临时工作目录,该目录已被清理。我认为这不是问题所在。请看相关问题。我试图了解为什么打开该文件会引发异常,因此我认为查看脚本运行的位置很重要(因为文件路径是作为相对路径给出的)。我不相信cwd被删除了,因为它应该是运行测试的目录(意思是包的目录)。@AndreiHorak:但它不是。
os.getcwd()
函数只不过是同名C调用的包装器,如果进程当前工作目录指向不存在的位置,它将返回一个错误。因为working dir只能设置到当时确实存在的位置,这意味着在您调用os.getcwd()
时,它已经不存在了。好吧,那么您一定是对的。谢谢你给我指明了正确的方向。设法对我最初的问题做了一个小的修复,事情开始朝着正确的方向发展。干杯
$ 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('/tmp')
>>> os.getcwd()
'/private/tmp'