我的Python脚本将文件名作为参数,然后根据该文件的内容添加更多参数。这是由
filename
)parser.parse_known_args()
检索固定参数filename
的内容添加一些动态参数parser.parse_args()
来解析剩余的参数现在我想使用argcomplete
启用制表符完成。因此,我想在第4步之前调用argcomplete.autocomplete(parser)
。但是,这不起作用,因为argcomplete
显然只运行到步骤2。你知道吗
所以我的问题是:有没有一种方法可以自动完成添加到ArgumentParser
后面parser.parse_known_args()
但在parser.parse_args()
之前的参数?你知道吗
看看argcomplete及其工作原理。您可以将它放在
parser.parse_known_args()
之后parser.parse_args()
之前,但它不会给您带来太多好处,因为它会运行您的脚本并检查提供的parser
以找出自动完成选项。它不向脚本传递任何参数(即迄今为止在命令行上键入的参数)。你知道吗当argcomplete被调用时,脚本将不知道传递了什么
filename
,以及应该动态添加哪些其他参数。你知道吗另外,如果在运行
parser.parse_known_args()
之前已经将任何required=True
参数添加到解析器中,则绝对不会运行argcomplete.autocomplete(parser)
,因为在到达后者之前,脚本在前者上的执行将失败(同样,为了自动完成,脚本在不向其传递任何参数的情况下运行)。你知道吗相关问题 更多 >
编程相关推荐