如何通过命令行将缺少值的列表传递给Python

时间:2017-09-22 23:29:23

标签: python command-line argparse

我一直在使用argparse从命令行运行Python脚本。

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('-foo', type = str, nargs = '*')

args = parser.parse_args()

从命令行,这将允许我编写类似:

的内容

python myscript.py -foo "value A" "value B" "value C"

在python中会变成

['value A', 'value B', 'value C']

但是现在如果我想传递该列表中的缺失值呢?如:

['value A', None, 'value C']

谢谢!

1 个答案:

答案 0 :(得分:2)

据我所知,没有一个无法实现。 argv将始终是字符串列表,因此"最空的"是空字符串""python myscript.py -foo "value A" "" "value C"

编辑:

结果证明你可以将任何带有1个字符串参数的可调用传递给type的{​​{1}}参数。例如,如果您希望将空字符串视为add_argument,将任何其他值视为None

float