黑帽联盟

 找回密码
 会员注册
查看: 3186|回复: 0

[其它] python raw_input中使用tab键补全命令

[复制链接]

908

主题

38

听众

3384

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    无聊
    2026-9-8 21:35
  • 签到天数: 1707 天

    [LV.Master]伴坛终老

    用 readline, 以下是一个简单的例子
    1. import readline

    2. CMD = ['foo1', 'foo2', 'bar1', 'bar2', 'exit']

    3. def completer(text, state):
    4.     options = [cmd for cmd in CMD if cmd.startswith(text)]
    5.     if state < len(options):
    6.         return options[state]
    7.     else:
    8.         return None

    9. readline.parse_and_bind("tab: complete")
    10. readline.set_completer(completer)

    11. while True:
    12.     cmd = raw_input('==> ')
    13.     if cmd=='exit':
    14.         break
    15.     print(cmd)
    复制代码
    测试:
    1. ==> <TAB><TAB>
    2. bar1  bar2  exit  foo1  foo2
    3. ==> b<TAB>
    4. ==> bar
    5. ==> bar<TAB><TAB>
    6. bar1  bar2  
    7. ==> bar1
    8. bar1
    9. ==> exit
    复制代码
    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部