如何使用argparse库来解析给定的字符串而不是app_args?

问题描述 投票:0回答:1

我尝试运行以下代码:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--target", required=True)
parsed_args, _ = parser.parse_known_args(args = ["--target foobar"])
print(parsed_args.target)

但是我说错了

following arguments are required: --target
。 运行 python 脚本时我没有传递任何参数,我只想在运行时将字符串传递给解析器,但运行文件时似乎仍然需要参数。

python string overriding argparse
1个回答
1
投票
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--target", required=True)
parsed_args, _ = parser.parse_known_args(args = ["--target","foobar"]) # this array is the only change to your code
print(parsed_args.target)

在 repr 中,事情看起来像这样;

>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument("--target", required=True)
_StoreAction(option_strings=['--target'], dest='target', nargs=None, const=None, default=None, type=None, choices=None, required=True, help=None, metavar=None)
>>> parsed_args, _ = parser.parse_known_args(args = ["--target","foobar"])
>>> print(parsed_args.target)
foobar
>>>

所以不知道你在哪里得到

ValueError
例外。

© www.soinside.com 2019 - 2024. All rights reserved.