我如何设置我的argparser使其具有以下行为?
backup -c example
backup example
backup -r example
backup -l
backup --create example2
backup example2
backup --remove example2
backup --list
我想让我的程序具有各种标志来创建/列出/删除此处未概述的“进程”。我希望可以使用--create
标志创建进程,然后可以使用提供的名称来调用该标志。可以通过将名称传递给--delete
标志来删除该过程。我希望能够传递non-flag参数(要运行的进程的名称),而不与可能为store_true或可能不是store_true的其他标志冲突(在要列出操作的情况下)或参数(例如创建/删除)
如果我使用位置参数来捕获备份过程的名称,那么我将失去以预期方式传递标志的能力,因此需要位置参数。但是,没有一个参数,我无法传递未指定的参数(没有标志的参数)。
在此示例中,您可以想象-c
创建具有给定名称的人工制品,直接调用该名称会触发一些计算,而-r
会删除具有给定名称的人工制品。
答案 0 :(得分:2)
根据我的理解,您想在程序中将参数用作flags
。
# Creating flag based argument
# Set to true if "--c" is mentioned
parser.add_argument('--c', action='store_true', help='create')
# Parsing
opt = parser.parse_args()
# Using argument
if opt.c:
create()