使用IPython的好處


相較於Linux上的python shell以及Windows上的IDLE,IPython可以使用python shell的一切,IPython還有許多magic函數可以使用,在IPython使用的同時還可以使用Unix shell命令(只需在命令前加!即可),推薦使用ipython,當你在學習python的一些方法時可以結合使用bash命令來達到更好的效果。

1.Tab自動完成,當然python shell也可具有tab自動完成功能但需要以下處理。

Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import rlcompleter,readline
>>> readline.parse_and_bind('tab:complete')
>>>
>>> import os
>>> os.li
os.linesep os.link( os.listdir( os.listxattr(
>>> os.list

2.魔力函數

IPython會把第一個字母為%的行視為魔力函數的調用,魔力函數可由%lsmagic或%<tab>列出。

In [1]: %alias nss netstat -lptn

In [2]: nss
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:39505               0.0.0.0:*                   LISTEN      1225/rpc.statd      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN

  In [3]: store nss (存儲別名,下次啟動IPython時可用)
  Alias stored: nss (netstat -lptn)

 

3.特殊的shell執行

之前提到過IPython中執行shell命令是在命令前加上!,在shell中可以使用重定向的方式來處理命令執行的結果,如ps aux | grep "root",在IPython中可以使用將命令執行結果存儲為list再用處理list的方式進行下一步處理。

In [48]: a = !netstat -plnt

In [49]: a
Out[49]: 
['Active Internet connections (only servers)',
 'Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   ',
 'tcp        0      0 0.0.0.0:39505               0.0.0.0:*                   LISTEN      1225/rpc.statd      ',
 'tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1375/sshd           ',
...]

  In [50]: a.grep("sshd",prune=True).fields(0,1,6) #bash shell:netstat -plnt | grep -v "sshd" | awk '{print $1,$2,$6}'
  Out[50]:
  ['Active Internet',
  'Proto Recv-Q Address',
  'tcp 0 1225/rpc.statd',
  'tcp 0 1508/master',

  ...]

shell命令和python命令同時使用:

In [84]: for i in range(10):
    ...:     !echo "$i"
    ...:     
0
1
2
3
4
5
6
7
8
9

4.獲取詳細幫助信息,魔力函數%pfile,%pdoc,%pdef,%psearch可查找python對象,%pinfo(?),%psource(??)可查看運行對象的文件(源碼)。

5.歷史hist,Ctrl-s

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM