使用 Popen 从 curl 获取标准输出

Get stdout from curl using Popen

此代码未按预期工作:

cmd = subprocess.Popen(["curl"], stdout = subprocess.PIPE)
(out,err) = cmd.communicate()
print(out)
print(err)

out 是一个空行,errNone,而是将输出打印到控制台。

我希望将输出存储到输出变量中,我使用的是 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)