具有多个命令和参数的Argparse模块



我正在尝试使用python 3内置的argparse模块来解析带有参数的命令。我已经部分阅读了argparse文档,但是,我找不到任何符合我要求的内容。我将这些参数解析为输入(我有自己的理由(。我有多个命令,每个命令都有基本参数和可选参数。

例如:

restart --name(名称被替换(

restart是命令,name是基本参数。

目前,我的代码将计数"--"在输入中,并调用具有相应布尔值的函数(如果给定--all,则is_all布尔参数将为true(

我还可以添加一个可选参数--all(全部不替换(。

听起来你正在寻找类似的东西

def get_arguments():
parser = argparse.ArgumentParser()
parser.add_argument("--arg1", required=False, default=None)
parser.add_argument("--arg2", required=False, default=None)
return parser.parse_args()
args = get_arguments()
if args.arg1:
# do something

如果没有看到您想要的代码或示例,很难回答这个问题。

我假设您正在做某种类似shell的事情。我还假设输入的每一行都有一个命令,每个命令都有自己的参数。

from argparse import ArgumentParser
def get_parser(cmd):
'''Returns a parser object for a given command'''
# Instantiate the parser object, add the appropriate arguments for the command
return parser  # This is an example -- you need to instantiate it
def main():
while True:
try:
in_line = input('> ')
if not in_line.strip():  # Quit if empty
break
args = in_line.split()
parser = get_parser(args[0])
opts = parser.parser_args(args)
# Do stuff with opts depending on command
except EOFError:
break
except SystemExit:
pass  # Prevent failures from killing the program by trapping sys.exit()

相关内容

  • 没有找到相关文章

最新更新