1、安装IPython工具
IPython是一个第三方工具,使用以下命令进行安装:
[root@python ~]# pip install ipython #安装ipython
[root@python ~]# ipython #执行ipython进入IPython交互式界面
Python 3.8.1 (default, Feb 3 2020, 18:39:50)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.12.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: sum=0
In [2]: for i in range(10):
...: sum+=i
...: print(sum)
45
In [3]: import os
In [4]: os.getlogin()
Out[4]: 'root'
Ipython具有以下特性:
- 支持语法高亮;
- 自动缩进;
- Tab补全;
- 快速获取帮助信息;
- 搜索历史;
- 执行shell命令;
2、magic函数
IPython提供了很多功能强大的函数,所有IPython提供的函数都以“%”开头。以“%”开头的这类功能强大的函数,在IPython中称为magic函数。magic函数主要是为IPython提供增强的功能、与操作系统交互、操纵用户的输入和输出以及对IPython进行配置。
可以通过以下指令来获取magic函数列表,如下:
In [28]: %lsmagic #以下任意函数都可以加?号来查询函数对应的功能,如:%save?
Out[28]:
Available line magics:
%alias %alias_magic %autoawait %autocall %autoindent %automagic %bookmark %cat %cd %clear %colors %conda %config %cp %cpaste %debug %dhist %dirs %doctest_mode %ed %edit %env %gui %hist %history %killbgscripts %ldir %less %lf %lk %ll %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %lx %macro %magic %man %matplotlib %mkdir %more %mv %notebook %page %paste %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %pip %popd %pprint %precision %prun %psearch %psource %pushd %pwd %pycat %pylab %quickref %recall %rehashx %reload_ext %rep %rerun %reset %reset_selective %rm %rmdir %run %save %sc %set_env %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode
Available cell magics:
%%! %%HTML %%SVG %%bash %%capture %%debug %%file %%html %%javascript %%js %%latex %%markdown %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile
Automagic is ON, % prefix IS NOT needed for line magics.
3、使用IPython与操作系统交互
IPython可以更好的与操作系统交互,在使用Python进行交互编程时,不用退出Python shell 就可以执行linux命令,magic函数里的%cd和%pwd作用相当于linux下的cd命令和pwd命令,此外,在IPython中,可以通过“!cmd”的形式执行任何Linux命令,如下:
#直接交互
In [31]: %pwd
Out[31]: '/root'
In [32]: %cd /usr/src/
/usr/src
In [33]: %pwd
Out[33]: '/usr/src'
In [42]: !ls / | grep e
dev
etc
home
media
#亦可以使用赋值的方式进行使用,如下:
In [43]: data=!df
In [44]: data
Out[44]:
['文件系统 1K-块 已用 可用 已用% 挂载点',
'/dev/mapper/cl-root 52403200 4779936 47623264 10% /',
'devtmpfs 917796 0 917796 0% /dev',
'tmpfs 933644 84 933560 1% /dev/shm',
'tmpfs 933644 9184 924460 1% /run',
'tmpfs 933644 0 933644 0% /sys/fs/cgroup',
'/dev/sda1 1038336 176544 861792 18% /boot',
'/dev/mapper/cl-home 49250820 33052 49217768 1% /home',
'tmpfs 186732 16 186716 1% /run/user/42',
'tmpfs 186732 0 186732 0% /run/user/0']