在python的交互式解释器中实现命令自动补全

Python的交互式解释器没有自带像Linux Shell那样的命令自动补全功能,也没有命令历史记录,可以编写一个脚本来实现这两个功能:


# python startup file
import sys
import readline
import rlcompleter
import atexit
import os
# tab completion
readline.parse_and_bind('tab: complete')
# history file
histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
try:
    readline.read_history_file(histfile)
except IOError:
    pass
atexit.register(readline.write_history_file, histfile)


在Linux系统中使用这个脚本的方法主要有两种,一种是把它当做一个python模块,使用的时候导入,另一种是让它在用户登录时自动执行。

我的操作环境为:CentOS 7.0.1406,Python 2.7.5

第一种方法,将以上脚本保存为startup.py,并放到python库的存放路径,我的系统中是/usr/lib64/python2.7/site-packages/,然后在进入交互式解释器时先用import命令将其导入:

[fred@Livingston ~]$ python
Python 2.7.5 (default, Jun 17 2014, 18:11:42) 
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import startup
>>>

第二种方法,将脚本保存为.pythonstartup并放在用户的家目录下,然后在环境信息文件~/.bashrc或者~/.bash_profile中添加下面这行,就可以在每次登录时自动执行这个脚本了:

export PYTHONSTARTUP=~/.pythonstartup

你可能感兴趣的:(python,命令自动补全)