如何使用带参数的curl命令并从Python脚本执行命令(Python 2.6.6))

时间:2017-04-05 17:54:02

标签: python linux curl

我正在编写一个python脚本来自动化一些工作。

我需要从Python脚本执行 Curl 命令,并将返回的json输出重定向到一个文件,以便我可以使用python脚本解析文件。

另外,我需要在Curl命令中传递变量。

我的curl命令看起来像是

curl -k -u <$username:&password> -X GET "https://xxxxxx:0000/rest/$jobtype/$id"  > jsonOutput.json

仅供参考,我们使用的是Python 2.6.6版本

任何建议都将不胜感激

谢谢, JEE

2 个答案:

答案 0 :(得分:0)

更好,如果您使用requests library。使用此模块发出HTTP请求非常容易,而且您不需要将输出保存在不同的文件中。很多IO都会被保存。

答案 1 :(得分:0)

使用subprocess.Popen从Python调用外部命令。

尝试:

subprocess.Popen('curl -k -u <$username:&password> -X GET "https://xxxxxx/Users/$username/$folderName/$id"', shell=True,  stdout=open('outputfile.json'))

但是,最好在像这样的数组中编写命令的每个部分

subprocess.Popen(['curl', '-k', '-u', 'user:pass', '-X', '-GET', url], stdout=open('outputfile.json'))

如果您在该命令中使用任何用户生成的输入,则无需使用shell=True更安全。提供用户访问shell是不安全的!