ipython cd magic似乎在Windows中无法正常工作

时间:2014-02-28 14:43:40

标签: windows ipython

我注意到路径在IPython中的工作方式有些奇怪。我使用的是1.2.1版本,但我也看到了1.1中的问题。我注意到的第一件事是%pwd和%cd魔术会给出不同的结果。如果我使用os.getcwd(),我看到%cd宏似乎是正确的。谁能解释为什么会这样?

%pwd
Out[1]: u'C:\\Users\\bubnabm1\\Documents\\Python Scripts'

%cd
C:\emacs

import os

os.getcwd()
Out[4]: 'C:\\emacs'

我注意到的第二个(可能是相关的)问题是,当我使用%cd magic改变我的路径时,它会打印到stdout的新路径,而os.getcwd()显示路径已经改变,但如果我再次调用%cd它会打印旧路径,就好像什么都没有改变一样。这里有什么我想念的吗?继续我之前的示例,下面的代码示例显示了这种行为:

%cd ..
C:
os.getcwd()
Out[6]: 'C:\\'

%cd
C:\emacs

我查看了StackOverflow,Google和IPython问题跟踪器,但没有找到任何可以解释此行为的内容。然而,我是一个新的IPython用户,我很可能会误解某些事情或做错事,所以我想在将问题提交给IPython团队之前发布。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

IPython的%cd magic与其他类似shell的魔术命令(pwd,ls)一样,是在Linux上建模的,而不是在Windows上建模的。

在Windows中,没有参数的cd命令就像Linux pwd一样 - 它打印工作目录。你显然希望从IPython的%cd魔术中获得这种行为。但是在Linux / OSX / * nix中,没有参数的cd命令会将工作目录更改为您的主目录。