我在使用带有curl命令的子进程模块时收到错误: function'对象是unsubscriptable 。
cmd (subprocess.check_call ['curl -X POST -u "opt:gggguywqydfydwfh" ' + Url + 'job/%s/%s/promotion/' % (job, Num)]).
我使用函数调用它。
def cmd(sh):
proc = subprocess.Popen(sh, shell=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE).
有人可以指出问题吗?
答案 0 :(得分:3)
你遗忘了check_call
的parens:
subprocess.check_call(["curl", "-X", "POST", "-u", "opt:gggguywqydfydwfh",Url + 'job/%s/%s/promotion/' % (job, Num)])
您正在尝试subprocess.check_call[...
您也将其传递给您的函数,check_call
会返回退出代码,因此您尝试将0
传递给您的Popen调用sh
,这将失败。
如果您确实想要输出,请忘记该函数并使用check_output
,您还需要传递一个args列表:
out = subprocess.check_output(["curl", "-X", "POST", "-u", "opt:gggguywqydfydwfh", Url + 'job/%s/%s/promotion/' % (job, Num)])
无论哪种方式将check_call传递给Popen都不是要走的路