Python 将带有空格字符的参数传递到argparse

Python 将带有空格字符的参数传递到argparse,python,command-line-arguments,argparse,Python,Command Line Arguments,Argparse,我的Python脚本: import os import argparse parser = argparse.ArgumentParser() parser.add_argument('-l', '--l', nargs='+', help='list = [title, HTML]') args = parser.parse_args() print args.l 当我在键盘大师内部执行脚本时,我是这样做的: python ~/Desktop/save_html.py -l $KMVAR

我的Python脚本:

import os
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-l', '--l', nargs='+', help='list = [title, HTML]')
args = parser.parse_args()
print args.l
当我在键盘大师内部执行脚本时,我是这样做的:

python  ~/Desktop/save_html.py -l $KMVAR_javascriptTITLE
它正在工作,但argparse正在解析任何带有空格的内容

First Name
变为
['First','Last']
。如果我理解正确,
arparse
正在读取我的命令,如下所示:

python ~/Desktop/save_html.py -l First Last
当我真正想要的是:

python ~/Desktop/save_html.py -l "First Last"

如何将变量传递到argparse中,并将其作为1个字符串读取

将我的评论更改为答案


如果您使用
python~/Desktop/save_html.py-l“$KMVAR_javascriptTITLE”
,会怎么样?如有必要,请转义引号

您可以使用自定义操作来执行此操作:

import os
import argparse


class CustomAction(argparse.Action):
    def __call__(self, parser, namespace, values, option_string=None):
        setattr(namespace, self.dest, " ".join(values))


parser = argparse.ArgumentParser()
parser.add_argument('-l', '--l', action=CustomAction, type=str, nargs='+', help='list = [title, HTML]')
args = parser.parse_args()
print args.l