多次 parse_known_args 调用后获取未知参数
Get unknown args after multiple parse_known_args calls
有没有办法在多次 argparse.parse_known_args()
调用后获取未解析的参数?
例如,我有以下代码:
import argparse, sys
def parse1():
parser = argparse.ArgumentParser()
parser.add_argument("--foo", action="store_true")
args = parser.parse_known_args()[0]
print("foo: ", args.foo)
def parse2():
parser = argparse.ArgumentParser()
parser.add_argument("--bar", action="store_true")
args, unknown = parser.parse_known_args()
print("bar: ", args.bar)
print("unknown: ", unknown)
sys.argv += ["--foo", "--bar", "--last"]
parse1()
parse2()
"""
Outputs:
foo: True
bar: True
unknown: ['--foo', '--last']
"""
我希望以某种方式获得 '--last'
的未知变量,它在 parse1()
或 parse2()
中未被解析
有什么想法吗?
我最后做了什么:
def pop_unknown_args(parser: ArgumentParser) -> Namespace:
args, unknown = parser.parse_known_args()
sys.argv = [sys.argv[0]] + unknown
return args
hpaulj,感谢您的评论
有没有办法在多次 argparse.parse_known_args()
调用后获取未解析的参数?
例如,我有以下代码:
import argparse, sys
def parse1():
parser = argparse.ArgumentParser()
parser.add_argument("--foo", action="store_true")
args = parser.parse_known_args()[0]
print("foo: ", args.foo)
def parse2():
parser = argparse.ArgumentParser()
parser.add_argument("--bar", action="store_true")
args, unknown = parser.parse_known_args()
print("bar: ", args.bar)
print("unknown: ", unknown)
sys.argv += ["--foo", "--bar", "--last"]
parse1()
parse2()
"""
Outputs:
foo: True
bar: True
unknown: ['--foo', '--last']
"""
我希望以某种方式获得 '--last'
的未知变量,它在 parse1()
或 parse2()
有什么想法吗?
我最后做了什么:
def pop_unknown_args(parser: ArgumentParser) -> Namespace:
args, unknown = parser.parse_known_args()
sys.argv = [sys.argv[0]] + unknown
return args
hpaulj,感谢您的评论