簡體   English   中英

如何使用argparse組合參數的多個值

[英]How to combine multiple values for an argument using argparse

我正在使用argparse為我的工作制作命令行工具。
我有一個要求,其中一個參數應該能夠采用多個值。

該論點只能采用合法值。

合法值可以是來自“ ALL”列表的值的任何組合。

sample.py

import argparse

sample_list = ["a", "b", "c"]

parser = argparse.ArgumentParser()

parser.add_argument('-M', '--Module', choices=sample_list, default=default_module, help='specify the Module name')
args = parser.parse_args()

使用上述方法,允許值是:

python sample.py -M a

我希望該用戶能夠輸入:

python sample.py -M a,b
<ok>

python sample.py -M ALL
<ok>

python sample.py -M D
<error>

如何實現呢?

最簡單的解決方案是將ALL包含在允許選擇的列表中,然后使用action='append'nargs='*'接受多個值。 我將對ALL的解釋留給后解析代碼。

正如在其他SO問題中所討論的那樣,嘗試處理以逗號分隔的子列表是很痛苦的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM