Python 将命令输出重定向到变量

问题描述 投票:0回答:2

首先,我知道这个问题之前被问过,但这对我来说是一个特例,因为正如标题所说,我想将命令的输出重定向到Python中的变量。我知道我可以使用 subrocess.popen,但我想运行的命令是一个数组,所以我必须使用 subrocess.call()。我已经尝试将数组转换为字符串,但这对我不起作用,因为命令包含空格。所以我需要使用 subrocess.call() 来运行我的命令。但是有没有办法获得 subrocess.call() 的输出?

python subprocess
2个回答
0
投票

subprocess.call()
执行命令并等待其完成。它返回命令的退出代码。 它不会捕获其运行的命令的输出。

来源:官方指南


0
投票

您可以使用

subprocess.run()
捕获命令的输出:

import subprocess

# Define your command as a list
command = ["echo", "Hello, World!"]

# Run the command and capture its output
result = subprocess.run(command, stdout=subprocess.PIPE, text=True)

# Get the captured output
output = result.stdout.strip()

print("Output:", output)
© www.soinside.com 2019 - 2024. All rights reserved.