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