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

Python 2.7 尝试从subprocess.Popen获取一些输出适用于除bzip2之外的所有命令,python-2.7,subprocess,bzip2,Python 2.7,Subprocess,Bzip2,我试图从subprocess获取输出。Popen将其分配给一个变量,然后在程序的其余部分使用它,但是它执行代码时从未将其分配给变量 我目前的代码行是 result=subprocess.Popen('bzip2--version',shell=True,stdout=subprocess.PIPE)。communicate()[0] 目前要测试它我只是打印的长度和结果,目前是空的 它确实执行代码,但在打印之前它会显示在终端中 我已经使用其他命令尝试了上述代码,它的工作原理与我预期的一样 关于如何

我试图从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]

也许试试stderr
result=subprocess.Popen('bzip2--version',shell=True,stderr=subprocess.PIPE)。communicate()[1]
doh!!看来我什么都试过了,除了stderr,把最后的0改成了1,这已经解决了你是个救生员,你应该把这个作为答案,这样我就可以接受了:)