Python - 运行 shell 命令,获取 stdout 和 stderr 作为变量,但对用户隐藏?

Python - Run shell command, get stdout and stderr as a variable, but hide from user?

我想要我的 Python 脚本 运行 一个 Linux shell 命令并将输出存储在一个变量中,而不向用户。我已经用 os.system、subprocess.check_output、subprocess.run、subprocess.Popen 和 os.popen 尝试过,但没有成功。

我目前的方法是 运行ning os.system("ls -l &> /tmp/test_file") 所以命令 stdout 和 stderr 被传送到 /tmp/test_file,然后我让我的 python 代码将文件读入一个变量,然后删除它。

是否有更好的方法可以将命令输出直接发送到变量中而无需创建和删除文件,但对用户隐藏它?

谢谢

您可以使用subprocess.run功能。

from subprocess import run

data = run("ANY COMMAND HERE",capture_output=True,shell=True)
print(data.stdout)
print(data.stderr)