使用 Popen 从 curl 获取标准输出
Get stdout from curl using Popen
此代码未按预期工作:
cmd = subprocess.Popen(["curl"], stdout = subprocess.PIPE)
(out,err) = cmd.communicate()
print(out)
print(err)
out
是一个空行,err
是 None
,而是将输出打印到控制台。
我希望将输出存储到输出变量中,我使用的是 Windows 7 和 Python 2.7。
如何将输出读入变量?
在命令行中键入 curl
,您将收到一条错误消息,因为您没有提供必需的参数。您在 out
中没有得到任何信息,因为 curl
将错误消息写入了 stderr
。你没有得到 err
因为你没有在 Popen
中重定向那个管道。试试这个:
cmd = subprocess.Popen(["curl"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out,err = cmd.communicate()
print('out:', out)
print('err:', err)
print('returncode:', cmd.returncode)
此代码未按预期工作:
cmd = subprocess.Popen(["curl"], stdout = subprocess.PIPE)
(out,err) = cmd.communicate()
print(out)
print(err)
out
是一个空行,err
是 None
,而是将输出打印到控制台。
我希望将输出存储到输出变量中,我使用的是 Windows 7 和 Python 2.7。
如何将输出读入变量?
在命令行中键入 curl
,您将收到一条错误消息,因为您没有提供必需的参数。您在 out
中没有得到任何信息,因为 curl
将错误消息写入了 stderr
。你没有得到 err
因为你没有在 Popen
中重定向那个管道。试试这个:
cmd = subprocess.Popen(["curl"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out,err = cmd.communicate()
print('out:', out)
print('err:', err)
print('returncode:', cmd.returncode)