我的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
当我在Keyboard Maestro中执行脚本时,我这样做:
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个字符串?
答案 0 :(得分:2)
将我的评论更改为答案
如果你做python ~/Desktop/save_html.py -l "$KMVAR_javascriptTITLE"
怎么样?必要时逃避报价
答案 1 :(得分:1)
您可以使用CustomAction执行此操作:
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