相关疑难解决方法(0)

python argparse中的自定义选项卡完成

如何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)

python bash command-line-interface tab-completion argparse

34
推荐指数
2
解决办法
1万
查看次数

文件列表中的自动完成命令行参数

假设我有一个名为的程序script.py,它允许使用命令行选项-i,该选项需要一个附加的关键字参数,例如

python script.py -i foo
Run Code Online (Sandbox Code Playgroud)

现在假定在我的工作目录中有一个名为的文件tags.txt,其中包含字符串列表。现在,我希望shell -i根据中给出的字符串列表自动完成调用脚本时执行的操作tags.txt。想法是-i在该文件中存储一些常见的输入参数,以减少键入错误并确保更快的输入。纯Python解决方案有可能吗?

python bash shell readline

4
推荐指数
2
解决办法
603
查看次数