Python 是否有方法将列表作为argparse中的参数之一传递
我正在写PySpark作业,我想为其传递几个参数。其中一个应该有字符串列表,也应该有一个列表。我搞不清楚如何将列表传递到参数列表Python 是否有方法将列表作为argparse中的参数之一传递,python,argparse,Python,Argparse,我正在写PySpark作业,我想为其传递几个参数。其中一个应该有字符串列表,也应该有一个列表。我搞不清楚如何将列表传递到参数列表 parser = argparse.ArgumentParser(description='My pyspark job arguments') parser.add_argument('--job', type=str, required=True, dest='job_name', help='The name of the spark job you want
parser = argparse.ArgumentParser(description='My pyspark job arguments')
parser.add_argument('--job', type=str, required=True, dest='job_name', help='The name of the spark job you want to run')
parser.add_argument('--res-path', type=str, required=True, dest='res_path',help='Path to the jobs resurces')
parser.add_argument('-l', '--list', action='append', required=True, help='List of list')
args = parser.parse_args()
在CLI中传递值时:
--list currency
--list RSD EUR
我希望--list的输出如下所示:
['currency'、['RSD'、['EUR']]
nargs
让您可以完成以下操作:
parser.add_argument('--list', action='append', nargs='+')
将产生
[['currency']、['RSD'、['EUR']]
。一个缺点是,不能在--list
之后立即使用位置参数,因为它们将作为--list
本身的参数使用。请检查,当使用复杂的CLI结构时,此库非常有用发送选项--
可用于分隔位置参数arguments@VPfB是的,但这也阻止了使用任何其他选项。您还可以指定另一个(有效)选项来停止--list
使用更多参数(--list a b c--foo…
)。它必须有效,否则argparse
将引发预期的“unrecognized argument--foo”错误(因此这是允许位置参数的一种方法,但不是唯一的方法)