尝试从 subprocess.Popen 获取一些输出适用于除 bzip2 之外的所有命令

Trying to get some output from subprocess.Popen works for all commands but bzip2

我正在尝试从 subprocess.Popen 获取输出并将其分配给一个变量,然后在我的程序的其余部分使用它,但是它正在执行代码而从未将其分配给我的变量

我当前的代码行是 result = subprocess.Popen('bzip2 --version', shell=True, stdout=subprocess.PIPE).communicate()[0] 目前要测试它我只是打印长度和当前为空的结果 它确实执行了代码,但它在我打印之前显示在终端中

我已经使用其他命令尝试了上述代码,它的工作原理与我预期的一样

关于我如何着手做这件事有什么建议吗?

bzip2 似乎写入 stderr 而不是 stdout。

result = subprocess.Popen('bzip2 --version', shell=True, stderr=subprocess.PIPE).communicate()[1]