ipython的基本使用中的魔法命令
IPython 有一些特殊命令,被称为魔法命令(Magic Command),它们有的为常见任务提供便利,有的则使你能够轻松控制 IPython 系统的行为。魔术命令是以百分号 % 为前缀的命令。例如,你可以通过 %timeit 这个魔法命令检测任意 Python 语句的执行时间。魔法命令可以看做运行于 IPython 系统中的命令行程序,它们大都还有一些“命令行选项”,使用 ? 即可查看其选项,例如 %run? 命令用于查看帮助。
在 IPython 会话环境中,所有文件都可以通过 %run 命令当做 Python 程序来运行,同时支持命令行参数。假设你在 ipython_script_test.py 中存放了一段简单的脚本,那么可以用如下方式执行:
In [5]: %run ipython_script_test.py
脚本是在一个空的命名空间中运行的(没有任何import,也没有定义任何其他的变量),所以其行为应该跟在标准命令行环境(通过python script.py启动的)中执行时一样。此后,该文件中所定义的全部变量(还有各种import、函数和全局变量)就可以在当前IPython shell中访问了(除非发生了异常)。如果希望脚本能够访问在交互式IPython命名空间中定义的变量,那就应该使用%run i而不是%run。
另外一些常用的魔术命令如下所示:
i在 IPython 中还可以用 ed 或 edit 命令编辑一个文件并执行,ed -x filename 则表示编辑文件不执行。用 pycat filename 命令可以语法高亮显示一个文件。
IPython 还有很多的魔术命令,不熟悉的话可以通过 %magic 查看详细文档;对某一个命令不熟悉的话,可以通过 %cmd? 内省机制查看特定文档。值得一提的是,IPython 中使用 del 命令无法删除所有的变量引用,因此垃圾回收机制也无法启用,所以有些时候你会需要使用 %xdel 或者 %reset。
扫码关注公众号