如何解决具有多个命令和参数的 Argparse 模块
我正在尝试使用 python 3 内置 argparse 模块解析带参数的命令。 我已部分阅读了 argparse documentation,但是,我找不到任何符合我要求的内容。 我将参数解析为输入(我有我的理由)。 我有多个命令,每个命令都有基本参数和可选参数。
例如:
restart --name
(名称被替换)
restart
是命令,name
是基本参数。
目前我的代码会计算输入中的“--”并使用相应的布尔值调用函数(如果给定 --all
,is_all
布尔参数将为真)
解决方法
听起来你正在寻找这样的东西
def get_arguments():
parser = argparse.ArgumentParser()
parser.add_argument("--arg1",required=False,default=None)
parser.add_argument("--arg2",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()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。