Python 2 中可以使用 subprocess
模块来执行 curl
命令并获取执行结果。下面是一个示例:
import subprocess
cmd = "curl -X GET 'https://example.com'"
process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = process.communicate()
if process.returncode == 0:
print("Output:", output.decode("utf-8"))
else:
print("Error:", error.decode("utf-8"))
这将执行 curl
命令,并将输出和错误信息分别存储在 output
和 error
变量中。如果命令执行成功(返回码为 0),则打印输出信息;否则,打印错误信息。
注意:
shell=True
参数表示使用 shell 来执行命令,这可以让你使用 shell 的特性,例如重定向和管道。但是,这也可能会引入安全问题,因为它允许执行任意 shell 命令。stdout=subprocess.PIPE
和 stderr=subprocess.PIPE
参数表示将输出和错误信息分别重定向到管道中,以便可以在 Python 中捕获和处理它们。output.decode("utf-8")
和 error.decode("utf-8")
用于将 bytes 对象解码为 Unicode 字符串,以便可以正确地打印输出和错误信息。
如果你想要获取 HTTP 响应的状态码和 headers,可以使用 curl
命令的 -i
选项,例如:
cmd = "curl -i -X GET 'https://example.com'"
这将使 curl
命令输出 HTTP 响应的 headers 和状态码。然后,你可以在 Python 中解析输出信息以获取所需的信息。