尝试从子进程获取一些输出.Popen 适用于所有命令,但 bzip2 除外



我正在尝试从子进程获取输出。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]

最新更新