为了账号安全,请及时绑定邮箱和手机立即绑定

部分解析后使用 argcomplete

部分解析后使用 argcomplete

翻翻过去那场雪 2021-10-12 16:40:30
我的 Python 脚本将文件名作为参数,然后根据该文件的内容添加更多参数。这是由添加固定参数(即filename)调用parser.parse_known_args()以检索固定参数根据内容添加一些动态参数 filename调用parser.parse_args()解析剩余参数现在我想使用argcomplete. 因此,我想argcomplete.autocomplete(parser)在第 4 步之前调用。但是,这不起作用,因为argcomplete显然只运行到第 2 步。所以我的问题是:有没有办法自动完成添加到ArgumentParserafterparser.parse_known_args()但 before 的参数parser.parse_args()?
查看完整描述

1 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

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

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

此外,如果您在required=True运行之前已将任何参数添加到解析器中,parser.parse_known_args()您确实永远不会运行,argcomplete.autocomplete(parser)因为在到达后者之前,脚本的执行会在前者上失败(同样,为了自动完成,脚本在没有任何参数的情况下运行传递给它)。


查看完整回答
反对 回复 2021-10-12
  • 1 回答
  • 0 关注
  • 205 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号