首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IPython中的cd vs %cd

IPython中的cd vs %cd
EN

Stack Overflow用户
提问于 2016-04-09 03:48:40
回答 1查看 6.7K关注 0票数 11

我认为在shell命令前面加上! (在IPython中)会使系统shell实际执行命令,但情况似乎并非如此。考虑以下情况,从/home/Documents/Rx开始,启动IPython,使用cd命令(没有!),然后退出IPython并查看我所在的目录:

代码语言:javascript
复制
$ pwd
/home/Documents/Rx
$ ipython
Python 2.7.11 |Anaconda 2.5.0 (64-bit)| (default, Dec  6 2015, 18:08:32) 
Type "copyright", "credits" or "license" for more information.

IPython 4.0.3 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: cd Papers/
/home/Documents/Rx/Papers

In [2]: pwd
Out[2]: u'/home/Documents/Rx/Papers'

In [3]: exit()
$ pwd
/home/Documents/Rx

正如您所看到的,我实际上并没有更改目录;只是在IPython shell中。我认为这是因为我没有在IPython中使用IPython,但这也不起作用:

代码语言:javascript
复制
$ pwd
/home/Documents/Rx
$ ipython
Python 2.7.11 |Anaconda 2.5.0 (64-bit)| (default, Dec  6 2015, 18:08:32) 
Type "copyright", "credits" or "license" for more information.

IPython 4.0.3 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: !cd Papers/

In [2]: pwd
Out[2]: u'/home/Documents/Rx'

In [3]: exit()
$ pwd
/home/Documents/Rx

请注意,在本例中,IPython shell也没有更改目录;但我希望实际的shell也会这样做。最后,使用神奇的命令%cdcd具有相同的效果。那么,这三者之间有什么区别,我如何才能实际告诉system在IPython中执行一个命令呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-09 03:55:04

!command不让“shell”运行命令。它使shell运行命令。它不是您运行IPython的shell;您不能从IPython向该shell发送命令。这是个新壳。

当您执行!cd时,您将启动一个新的shell,它将更改它自己的当前工作目录并立即关闭。这对IPython或您从IPython中启动的shell没有任何影响。

当您执行cd%cd时,您告诉IPython更改它自己的工作目录。这将持续到IPython会话期间,但对您从IPython启动的shell仍然没有任何影响。当您停止IPython时,该shell仍然位于启动IPython时的任何目录中。

不能从IPython更改父shell的工作目录。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36512527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档