小编aem*_*aem的帖子

如何确定是否在命令行中实际指定了argparse参数?

我使用arparse使用命令行中指定的值更新配置dict.因为我只想更新配置中的值,在命令行中明确提到了值.

因此,我尝试通过检查每个操作是否getattr(args, action.dest) == action.default等于转换类型的arg 来识别未指定的参数.然后我更新dict中我的所有值,这是错误的.

但是这当然失败了,如果我在命令行中明确指定一个与我的默认参数相同的参数.是否有可能使用argparser识别这些明确提到的参数,或者我是否必须在sys.argv中手动识别它们?

谢谢!

编辑:

让我的意图更清晰.我有一个如下的论点:

parser.add_argument('--test', default='meaningful_default')

和配置一样

config = { 'test' : 'nondefault_val'}

现在我想只使用明确指定的参数更新配置.将args属性与默认值进行比较只要我没有指定类似于prog.py --test meaningful_default再次更新我的配置的值,这个值恰好也是默认值

python argparse

14
推荐指数
4
解决办法
5507
查看次数

标签 统计

argparse ×1

python ×1