如何argparse在Python脚本中使用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))
Run Code Online (Sandbox Code Playgroud)
在.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
Run Code Online (Sandbox Code Playgroud) 假设我有一个名为的程序script.py,它允许使用命令行选项-i,该选项需要一个附加的关键字参数,例如
python script.py -i foo
Run Code Online (Sandbox Code Playgroud)
现在假定在我的工作目录中有一个名为的文件tags.txt,其中包含字符串列表。现在,我希望shell -i根据中给出的字符串列表自动完成调用脚本时执行的操作tags.txt。想法是-i在该文件中存储一些常见的输入参数,以减少键入错误并确保更快的输入。纯Python解决方案有可能吗?