在 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
]
要在同一个列表[]中获取这些参数,我们必须在代码中使用 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()