模仿 AWS CLI / gcloud 命令行参数

Posted

技术标签:

【中文标题】模仿 AWS CLI / gcloud 命令行参数【英文标题】:Mimicking AWS CLI / gcloud command line args 【发布时间】:2018-08-20 23:18:09 【问题描述】:

我有用于与 Auth0 交互的实用程序脚本。我想将它们组合成一个类似于 gcloud 和 awscli 的工具:

$ gcloud [module] [commands & args]
$ aws cloudformation validate-template --template-body file://test.yml

$ auth0 user add --email [EMAIL] ...
$ auth0 connection backup --connection [CXD_ID]
$ auth0 [user | connection | client | ...]

我认为我不能使用 argparse 来做到这一点,因为它将没有前导破折号的 args 视为强制性位置 args,但我当然不是专家。

【问题讨论】:

可能是子命令? docs.python.org/3/library/argparse.html#sub-commands 就是这样。或者我认为就是这样。在我所有的搜索中,我从未想过要搜索“子命令”。谢谢! 没问题。我不确定第三方是否是一个选项,但如果是这样,你可能也想看看点击:click.pocoo.org/6/commands 从您的示例中,尚不完全清楚哪些字符串是带或不带前缀的键(或标志),以及哪些是字符串的名称。 【参考方案1】:

@delirious-lettuce 提供了答案:argparse 中的子命令。经验教训:在发布到 SO 之前阅读所有文档。

相关:

https://docs.python.org/3/library/argparse.html#sub-commands

How to parse multiple nested sub-commands using python argparse?

【讨论】:

以上是关于模仿 AWS CLI / gcloud 命令行参数的主要内容,如果未能解决你的问题,请参考以下文章

aws CLI使用

Mac安装aws-cli全过程,通过命令行上传文件到aws s3协议服务器

减少 gcloud Google Compute Platform CLI 冗长

AWS:使用 Elastic Beanstalk 命令行界面 (EB CLI) 3.x SSH 到 EC2

AWS CLI 命令参数学习 如何使用 --query 选项筛选输出

aws cli 常用命令