【问题标题】:Multiple argument in python argparsepython argparse中的多个参数
【发布时间】:2022-01-06 22:11:26
【问题描述】:

我希望我的脚本采用同名的多个参数。

python3 script.py --test test1 --test test2 --test test3 --config config_path

我怎样才能做到这一点。我已经从 argparse 尝试了 nargs 到现在。

# My Solution
import argparse

parser = argparse.ArgumentParser(description='Arg Parser',
            formatter_class=argparse.ArgumentDefaultsHelpFormatter,
            allow_abbrev=False)

parser.add_argument('--test', nargs='+', required=True, \
                help='Modules name for sanity check', choices=['test1 ', 'test2 ', 'test3 '])

parser.add_argument('--config')

arg = parser.parse_args()

但它的行为与它的形式略有不同

python3 script.py --test test1 test2 --config config_path

关于如何获得所需行为的任​​何建议

【问题讨论】:

  • 有一个 'append' `action 值。检查文档。
  • 感谢@hpaulj append 有效,但我看到test=[['train1'], ['train2']]) 是这种预期行为。
  • 你的nargs 是什么? 'append' 创建一个列表,nargs 可以添加另一个层。
  • 我明白了,我正在使用 nargs='+' 导致这种行为。删除它帮助我解决了这个问题。这是很大的帮助。

标签: python argparse


【解决方案1】:

@hpaulj cmets 添加代码以防万一

parser.add_argument('--test', action='append', required=True, \
                choices=['test1 ', 'test2 ', 'test3 '])

【讨论】:

    猜你喜欢
    • 2011-07-19
    • 2014-12-30
    • 2021-06-01
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多