Python无法在名称前面使用斜杠保存文件

时间:2016-02-01 13:56:41

标签: python file ipython

with open('/tests/testDict.pickle','wb') as fp: print 'to terminal'

上面有什么问题让我疯了,给我以下内容:

---------------------------------------------------------------------------
IOError                                   Traceback (most recent call last)
<ipython-input-17-fe5a4a9f361c> in <module>()
----> 1 with open('/tests/testDict.pickle','wb') as fp: print 'to terminal'

IOError: [Errno 2] No such file or directory: '/tests/testDict.pickle'

如果我前面没有斜线,我会得到:

with open('tests/testDict.pickle','wb') as fp: print 'to terminal'
to terminal

我在OS X中有以下目录结构:

$ ls
cp1.py           cp1_pdftest.jpg  random/          tests/

3 个答案:

答案 0 :(得分:4)

"/tests/"上的前导斜线迫使路径绝对,即使你正在做

os.path.join(os.getcwd(), "/tests/")

所以你需要做

os.path.join(os.getcwd(), "tests/")

来自os.path.join文档:

  

os.path.join(path, *paths)

     

智能地加入一个或多个路径组件。返回值是   path*paths的任何成员的串联,只有一个   每个非空部分之后的目录分隔符(os.sep)除外   最后一个,意思是结果只会在分隔符中结束   最后一部分是空的。 如果组件是绝对路径,则以前都是   组件被丢弃,加入继续绝对   路径组件。

答案 1 :(得分:3)

如果有前导斜杠,则表示绝对路径。也就是说,除非你有一个名为&#39; tests&#39;的目录。在系统的根目录(/)中,这不应该起作用。

答案 2 :(得分:0)

/只是根目录,也许您应该尝试使用./