我正在编写一个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
答案 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是不安全的!