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 informationIPython 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) 45In [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 %xmodeAvailable 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 %%writefileAutomagic 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/srcIn [33]: %pwd Out[33]: '/usr/src'In [42]: !ls / | grep e devetchomemedia#亦可以使用赋值的方式进行使用,如下: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']