python运行不了control+shift+i_如何执行python命令行自动补全,但不仅限于字符串的开头...

这篇博客介绍了如何使用Python的readline模块来清除和添加命令行历史记录,并创建自定义的补全功能。示例代码展示了如何设置历史记录、绑定按键操作以及实现基于缓存的补全功能。这对于增强交互式Python脚本的用户体验非常有用。

小编典典

我不确定我是否理解问题。您可以使用readline.clear_history和readline.add_history设置所需的可完成字符串,然后使用control-r搜索历史记录中的backword(就像在shell提示符下一样)。例如:

#!/usr/bin/env python

import readline

readline.clear_history()

readline.add_history('foo')

readline.add_history('bar')

while 1:

print raw_input('> ')

或者,您可以编写自己的完成程序版本并将适当的密钥绑定到该版本。如果匹配列表很大,此版本将使用缓存:

#!/usr/bin/env python

import readline

values = ['Paul Eden ',

'Eden Jones ',

'Somebody Else ']

completions = {}

def completer(text, state):

try:

matches = completions[text]

except KeyError:

matches = [value for value in values

if text.upper() in value.upper()]

completions[text] = matches

try:

return matches[state]

except IndexError:

return None

readline.set_completer(completer)

readline.parse_and_bind('tab: menu-complete')

while 1:

a = raw_input('> ')

print 'said:', a

2020-06-07

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值