“给我一个强大而又灵活的文本编辑器(vim),一个交互式shell(IPython)以及一个语言(Python),我就能撬动整个世界。”

将IPython用熟了,可以轻松在试验、编码、测试间 “无缝折腾”。

“?” 和 “??” 是 IPython 中最常用的命令。

##和shell交互

  • 在shell中使用python变量,加上$
    • folder = ‘data’ , mkdir $folder
  • !command ,执行shell命令
1
2
3
4
:::text
path = "/var/www"
!echo $path
> /var/www

##目录/书签

  • %pwd: 显示当前工作目录。
  • %cd: 切换工作目录。
  • %bookmark: 工作目录书签。 (永久?) cd 和 bookmark 配合起来用,非常方便。
1
2
3
4
5
6
:::text
%bookmark test #为当前目录定义书签
%bookmark www /var/www #为其他目录定义书签
%bookmark -l # 显示书签列表
%bookmark -d text #删除书签
cd -b www #使用书签跳转,可省略 -b

书签跟别名的区别在于,它们会被自动持久化(写到.ipython里?)

##edit edit xx 进入文本 退出后执行文本中代码 默认使用vim,这样就可以跟外部文件沟通啦

1
2
3
:::text
edit hello.py
run hello

###给ipython edit指定编辑器 eg:(我的mac下)
export EDITOR="/usr/local/bin/vim”

###使编辑生效 reload(hello)

##历史

  • %history: 显示历史。
  • %hist: %history 别名。
  • %dhist: 显示工作目录历史。
  • %clear: 清除历史数据。
  • %save: 保存输入命令到文件。

可以将多个范围的输入数据保存到文件中。通常用于将交互环境中写的测试代码保存成源码文件。

%save -r test.txt 33-34 36
保存33-34(闭区间)以及36行到当前目录下test.txt文件里
参数 -a 添加到结尾

###自动设置ipython环境

  • 写好ipython_context.py
  • run ipython_context.py ,相关语句被导入执行,在上下文中
  • dir()查看上下文变量

##执行

  • %bg: 使用独立线程在后台执行。
  • %rep: 获取上一次命令的输出,或提取某个历史命令。
  • %run: 用来执行一个脚本,并将相关对象导入交互环境上下文。使用起来类似于熟悉的python test.py
    • run命令还可以附加选项,常用的有-t选项,这个会在脚本执行完后,打印出执行的cpu timings。如果指定了-t选项,后面可以跟一个-Nx,x代表一个数字。表示重复执行x次。
    • 还有一个-p选项,这个选项会开启python profiler,从而打印出详细的执行时间、函数调用等等信息供优化参考。
  • %runlog: 执行记录文件中命令。这对于 “恢复现场” 是非常有帮助地。

##记录

  • %logstart: 启动记录器。
  • %logon: 开始记录。
  • %logoff: 暂停记录。
  • %logstate: 查看记录状态。
  • %logstop: 关闭记录器。

首先需要用 %logstart 启动记录器,中间可以随时使用 %logon/%logoff 启动或暂停,末了别忘了关闭记录器,确保记录信息写到磁盘文件中。
%logstart 启动后会连同该命令之前的历史记录一起保存,因此要想有个干净起点的话,最好调用 %clear 清理现场

##显示

  • %p: Python print 函数的缩写。
  • %pfile: 查看对象所在源码文件。
  • %pycat: 查看源代码文件。

##搜索

  • %psearch: 在当前上下文的命名空间中进行模糊搜索。
  • %psearch -i t*.S* 其中 参数 -i 忽略大小写
  • 输入 CTRL + R 搜索历史命令

##测试

  • %prun: 使用 profile 获取代码执行的性能统计。
  • %time: 获取代码执行时间。
  • %timeit: 通过多次循环,获得最佳的执行时间评测。 这个命令用来测试一条命令执行的时间,一般而且,会重复100次运行这个命令,然后取出最好的3个结果取平均值。
    • %timeit [x*x for x in range(100000)]

##调试

  • %debug: 激活交互调试模式。
  • %pdb: 激活 pdb 调试模式,在引发异常时自动切入 pdb 调试命令行。

熟悉 pdb 是必须的,别老想着用 print,assert 也比那个强些。

##宏 macro 宏允许用户为一段代码定义一个名字

##配置

  • %autoindent: 自动缩进开关。
  • %automagic: 打开时可省略 %magic 前的百分号。
  • %colors: 彩色方案。

第一次运行ipython时会自动生成配置目录 $HOME/.ipython

##notebook ipython notebook。一个基于web的ipython shell!

notebook使用起来和ipython差不多,不过修改起来方便得多,并且可以建多个notebook,所以使用起来各种方便

#其他

  • %reset: 重置 IPython,清理相关环境对象,但历史信息被保留。

#参考资料