2014-02-28 41 views
1

我注意到IPython中路徑的工作方式,有些陌生。我使用的是1.2.1版本,但我也在1.1版本中看到過這個問題。我注意到的第一件事是%pwd和%cd魔術給出了不同的結果。如果我使用os.getcwd(),我發現%cd宏看起來是正確的。任何人都可以解釋爲什麼這是發生?ipython cd magic在Windows中似乎無法正常工作

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

%cd 
C:\emacs 

import os 

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

我注意到第二(可能是相關的)問題是,當我使用%CD魔法來改變我的路它打印到標準輸出的新路徑,並os.getcwd()顯示的路徑已經改變,但如果我再次調用%cd,則會打印舊路徑,就好像沒有任何更改。有什麼我在這裏失蹤?從我繼續前面的例子,下面的代碼示例顯示了這種行爲:

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

%cd 
C:\emacs 

我看StackOverflow上,谷歌和IPython的問題跟蹤,並沒有發現任何可以解釋這種行爲。不過,我是一名新的IPython用戶,我很可能會誤解某些內容或做錯某些事情,所以我想在將問題提交給IPython團隊之前發佈。任何幫助將不勝感激。

+1

沒有參數的'%cd'通常會更改爲您的主目錄。通常在Windows的'C:\ Users \ foo'上,但是如果它認爲'C:\ emacs'由於某種原因是您的主目錄,那麼您顯示的內容是有意義的。 –

回答

1

IPython的%cd魔術,就像它的其他shell-like魔術命令(pwd,ls)一樣,是在Linux上模擬的,而不是在Windows上。

在Windows中,沒有參數的cd命令就像Linux pwd - 它打印工作目錄。你顯然希望從IPython的%cd魔術中獲得這種行爲。但在Linux/OSX/* nix中,不帶參數的cd命令將工作目錄更改爲主目錄。

相關問題