Python 的 argeparse 多次使用相同的选项,但将这些选项放在同一个列表中

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

在 Python 的 argparse 中,多次使用相同的选项会将这些参数放在不同的列表中。但我希望这些论点在同一个列表中。

我得到的结果是:

# only the input portion
[
    [input1, input2],
    [input3, input4, input5],
    [input6]
]

我的代码:

# myScript.py
import argparse
parser=argparse.ArgumentParser()
parser.add_argument('-i', action='append', nargs='+')
parser.add_argument('-o', action='append', nargs='*')
args = parser.parse_args()

执行代码:

myScript.py -i input1 input2 -o output1 -i input3 input4 input5 -o output2 -i input6

我想要的结果是:

[
    input1, 
    input2, 
    input3, 
    input4, 
    input5,
    input6
]
python argparse multiple-arguments
1个回答
1
投票

要在同一个列表[]中获取这些参数,我们必须在代码中使用 action="extend" 而不是 action="append"。所以不管我们使用这个选项多少次,我们都会在同一个列表中得到这些参数。

[
    input1, 
    input2, 
    input3, 
    input4, 
    input5,
    input6
]

这意味着代码将是这样的:

# myScript.py
import argparse
parser=argparse.ArgumentParser()
parser.add_argument('-i', action='extend', nargs='+')
parser.add_argument('-o', action='append', nargs='*')
args = parser.parse_args()
© www.soinside.com 2019 - 2024. All rights reserved.