部分解析后使用argcomplete

2024-06-24 13:47:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我的Python脚本将文件名作为参数,然后根据该文件的内容添加更多参数。这是由

  1. 添加固定参数(即filename
  2. 调用parser.parse_known_args()检索固定参数
  3. 根据filename的内容添加一些动态参数
  4. 调用parser.parse_args()来解析剩余的参数

现在我想使用argcomplete启用制表符完成。因此,我想在第4步之前调用argcomplete.autocomplete(parser)。但是,这不起作用,因为argcomplete显然只运行到步骤2。你知道吗

所以我的问题是:有没有一种方法可以自动完成添加到ArgumentParser后面parser.parse_known_args()但在parser.parse_args()之前的参数?你知道吗


Tags: 文件脚本parser内容参数parse文件名args
1条回答
网友
1楼 · 发布于 2024-06-24 13:47:44

看看argcomplete及其工作原理。您可以将它放在parser.parse_known_args()之后parser.parse_args()之前,但它不会给您带来太多好处,因为它会运行您的脚本并检查提供的parser以找出自动完成选项。它不向脚本传递任何参数(即迄今为止在命令行上键入的参数)。你知道吗

当argcomplete被调用时,脚本将不知道传递了什么filename,以及应该动态添加哪些其他参数。你知道吗

另外,如果在运行parser.parse_known_args()之前已经将任何required=True参数添加到解析器中,则绝对不会运行argcomplete.autocomplete(parser),因为在到达后者之前,脚本在前者上的执行将失败(同样,为了自动完成,脚本在不向其传递任何参数的情况下运行)。你知道吗

相关问题 更多 >