本节书摘来自异步社区《Python数据分析》一书中的第1章,第1.6节,作者【印尼】Ivan Idris,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.6 将IPython用作shell
我们知道,科学家、数据分析师和工程师经常需要进行实验,而IPython正是为实验而生的。对于IPython提供的交互式环境,明眼人一看就知道它与MATLAB、Mathematica和Maple非常接近。
下面是IPython shell的一些特性。
- Tab补全功能(Tab completion),可以帮助查找命令。
- 历史记录机制。
- 行内编辑。
- 利用%run用外部Python脚本。
- 访问系统命令。
- pylab开关。
- 访问Python的调试工具和分析工具。
下面给出IPython shell的使用方法。
- pylab开关:使用pylab开关可以自动导入Scipy、NumPy和matplotlib这3个程序包。如果没有它,就得自己动手导入这些程序包。
- 我们只需要输入如下所示的命令:
$ ipython -pylab
Type "copyright", "credits" or "license" for more information.
IPython 2.0.0-dev -- 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.
Welcome to pylab, a matplotlib-based Python environment
[backend: MacOSX].
For more information, type 'help(pylab)'.
In [1]: quit()
小技巧:
退出IPython shell时,可以使用quit()函数或者Ctrl+D组合键。
- 保存会话:有时我们可能想要恢复之前做过的实验。对于IPython来说,这很容易,只要保存了会话,就可以供将来继续使用,具体命令如下所示:
In [1]: %logstart
Activating auto-logging. Current session state plus future
input saved.
Filename : ipython_log.py
Mode : rotate
Output logging : False
Raw input log : False
Timestamping : False
State : active
使用下列命令可以关闭记录功能:
In [9]: %logoff
Switching logging OFF
执行系统的shell命令:默认情况下,IPython允许通过在命令前面追加!号来执行系统的shell命令。
举例来说,输入下面的命令,将会得到当前日期:
In [1]: !date
事实上,任何前置了!号的命令行都将发送给系统的shell来处理。此外,可以通过如下所示的方法来存储命令的输出结果。
In [2]: thedate = !date
In [3]: thedate
显示历史上用过的命令:可以利用%hist命令来显示之前用过的命令,比如:
In [1]: a = 2 + 2
In [2]: a
Out[2]: 4
In [3]: %hist
a = 2 + 2
a
%hist
这在命令行接口(Command Line Interface,CLI)环境中是一种非常普遍的功能。此外,还可以用-g开关在历史命令中进行搜索,如下所示:
In [5]: %hist -g a = 2
1: a = 2 + 2
下载示例代码:
如果是在http://www.packtpub.com网站上通过自己的账户购买到Packt公司的图书,就可以直接从该网站下载相应的示例代码。如果是从其他的地方购买这本书,可以到http://www.packtpub.com/support进行注册,这样就可以通过电子邮件的方式接收相应的示例代码文件。
在上面的过程中,我们使用了一些所谓的魔力函数(magic functions),这些函数均以%开头。当魔力函数单独用于一行时,就可以省略前缀%。