将Python变量传递给三引号curl命令

时间:2017-01-13 00:32:30

标签: python-2.7

SIZ=100

imap_cmd="""
curl -s -X GET --insecure -u xxx https://xxxxx/_search?pretty=true -d '{
"from":0,
"size":%SIZ,
"query":{ "match_all": {} },
"_source":["userEmail"]
}' | grep -i userEmail|awk {'print $3'} | cut -d ',' -f1
"""
def run_cmd(cmd):
    p = Popen(cmd, shell=True, stdout=PIPE)
    output = (p.communicate()[0])

    return output

我正在尝试将SIZ(python)变量传递给curl命令,但是当我执行命令时它不会解释该值。我在这里缺少什么

1 个答案:

答案 0 :(得分:1)

看起来您正试图在此行中使用%格式化程序

"size":%SIZ,

imap_cmd="""
curl -s -X GET --insecure -u xxx https://xxxxx/_search?pretty=true -d '{
"from":0,
"size":%d,
"query":{ "match_all": {} },
"_source":["userEmail"]
}' | grep -i userEmail|awk {'print $3'} | cut -d ',' -f1
""" % SIZ

Here是关于格式化字符串的更多信息。