【发布时间】:2013-01-13 21:11:24
【问题描述】:
如何在 Python 脚本中获得与 argparse 合作的 shell 选项卡完成?
#!/usr/bin/env python
import argparse
def main(**args):
pass
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('positional', choices=['spam', 'eggs'])
parser.add_argument('--optional', choices=['foo1', 'foo2', 'bar'])
args = parser.parse_args()
main(**vars(args))
在 .py 文件上设置可执行标志后,预期结果应类似于:
$ ./example.py sp<tab>
-> completes to "./example.py spam"
$ ./example.py --op<tab>
-> completes to "./example.py --optional"
$ ./example.py --optional b<tab>
-> completes to "./example.py --optional bar"
$ ./example.py --optional f<tab>
-> completes to "./example.py --optional foo"
and, additionally, prints "foo1 foo2" choices on stdout on a new line
【问题讨论】:
-
这里有一点背景资料:stackoverflow.com/questions/9568611/…
标签: python bash command-line-interface argparse tab-completion