gpt4 book ai didi

python - subprocess.Popen 没有正确转义命令行参数?

转载 作者:太空狗 更新时间:2023-10-30 01:52:14 26 4
gpt4 key购买 nike

我正在尝试使用 python 调用以下 curl 命令:

curl -k -F file=@something.zip -F "data={\\"title\\":\\"Another App\\"}" -Lu usr:pwd https://build.phonegap.com/api/v0/apps

为了使其正常工作,我发现我在数据中传递的 json 需要使用反斜杠进行转义。

我可以用...调用这个命令

os.system(curl -k -F file=@something.zip -F "data={\\"title\\":\\"Another App\\"}" -Lu usr:pwd https://build.phonegap.com/api/v0/apps)

并且有效。

但是,当我尝试像这样使用子流程模块时......

s = 'curl -k -F file=@something.zip -F "data={\\"title\\":\\"Another App\\"}" -Lu usr:pwd https://build.phonegap.com/api/v0/apps'
push = subprocess.Popen(s.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, errors = push.communicate()
print output

...curl 不起作用,我从我正在使用的 api 中得到一个错误,我使用了无效的参数,这是我过去在使用不正确的转义 json 时得到的。

这是怎么回事?为什么我可以用 os.system 调用这个命令而不是 subprocess.Popen?到目前为止,我的假设是拆分弄乱了字符串中的某些内容,但是当我检查 s.split() 的输出时,我没有发现任何看起来不对的地方。

最佳答案

也许使用 shell=True

push = subprocess.Popen(s, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

关于python - subprocess.Popen 没有正确转义命令行参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6739865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com