我注意到在IPython中path的工作方式有些陌生。 我使用的是1.2.1版本,但是我也在1.1版本中看到了这个问题。 我注意到的第一件事是%pwd和%cd magics给出了不同的结果。 如果我使用os.getcwd(),我看到%cdmacros似乎是正确的。 任何人都可以解释为什么这是发生?
%pwd Out[1]: u'C:\\Users\\bubnabm1\\Documents\\Python Scripts' %cd C:\emacs import os os.getcwd() Out[4]: 'C:\\emacs'
我注意到的第二个(可能相关的)问题是当我使用%cd魔术来改变我的path时,它打印新的path到标准输出,os.getcwd()显示path已经改变,但如果我打电话给%cd它再次打印旧的path,就好像没有任何改变。 有什么我在这里失踪? 从我以前的例子继续,下面的代码示例显示了这种行为:
%cd .. C: os.getcwd() Out[6]: 'C:\\' %cd C:\emacs
我查看了StackOverflow,Google和IPython问题跟踪器,但没有find任何可以解释这种行为的东西。 不过,我是一个新的IPython用户,对于我误解某些东西或者做错某些事情的可能性,我很乐于接受,所以我想在提出这个问题给IPython团队之前发布。 任何帮助将不胜感激。
IPython的%cd魔术,就像其他类似shell的魔术命令(pwd,ls)一样,是在Linux上模拟的,而不是在Windows上。
在Windows中,没有参数的cd命令就像Linux pwd – 它打印工作目录。 你显然是期待从IPython的%cd魔术这个行为。 但在Linux / OSX / * nix中,不带参数的cd命令会将工作目录更改为您的主目录。