在Python中,您可以使用subprocess
库来创建子进程并重定向输出
import subprocess
# 使用 subprocess.run() 运行子进程并捕获输出
result = subprocess.run(["echo", "Hello, World!"], capture_output=True, text=True)
# 打印子进程返回的状态码,标准输出和标准错误
print("Return Code:", result.returncode)
print("Standard Output:", result.stdout)
print("Standard Error:", result.stderr)
此示例使用echo
命令创建子进程。capture_output=True
选项告诉Python捕获子进程的输出,并将其存储在result
对象的stdout
和stderr
属性中。text=True
表示以文本形式(而不是字节串)返回输出。
注意:capture_output=True
需要Python 3.7及更高版本。如果您使用的是较早版本的Python,请使用以下代码:
import subprocess
# 使用 subprocess.PIPE 捕获输出
result = subprocess.run(["echo", "Hello, World!"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
# 打印子进程返回的状态码,标准输出和标准错误
print("Return Code:", result.returncode)
print("Standard Output:", result.stdout)
print("Standard Error:", result.stderr)
这将通过设置stdout
和stderr
参数为subprocess.PIPE
来捕获输出。universal_newlines=True
功能类似于text=True
,它将输出作为字符串返回,而不是字节串。
领取专属 10元无门槛券
手把手带您无忧上云