Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 打印subprocess.call结果_Python_Python 2.7_Subprocess - Fatal编程技术网

Python 打印subprocess.call结果

Python 打印subprocess.call结果,python,python-2.7,subprocess,Python,Python 2.7,Subprocess,我试图用一个字符串返回驱动器的温度,前缀为“Temp:”。为了达到这个目的,我运行了一个简单的脚本,将字符串与命令的输出连接起来 import subprocess command = "sudo smartctl -A /dev/sda | egrep Temperature_Celsius | awk '{print $10}'" print "Temp " + str(subprocess.call(command, shell=True)) 结果: 删除“打印”行时,“29”也

我试图用一个字符串返回驱动器的温度,前缀为“Temp:”。为了达到这个目的,我运行了一个简单的脚本,将字符串与命令的输出连接起来

import subprocess

command = "sudo smartctl -A /dev/sda | egrep Temperature_Celsius | awk '{print $10}'"

print "Temp " + str(subprocess.call(command, shell=True))

结果:


删除“打印”行时,“29”也不会显示。因此,当我使用print语句时,脚本出于某种原因返回'29',然后突然返回0,而29实际上是正确的值

我希望我能得到这个:

Temp: 29
我尝试过使用os.system,结果也一样。 我还尝试将该命令直接添加到“command=str(subprocess.call)(”命令中,但结果相同。 我阅读了os.system info页面和SUBSPROCESS.call info页面,没有找到解决方案。然后我搜索了AWK命令,可能它创建了一些疯狂的输出,但我找不到任何有用的东西

Linux 3.8.0-34-generic上的Python 2.7 UbuntuSMP周二11月12日18:00:10 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

subprocess.call()
返回(其中
0
表示成功)。如果需要进程输出,请使用:


呸,你有闪电般的手指:P@JoranBeasley我看到Martijn在巴哈马度假。这是他不在时的回答。
Temp: 29
print "Temp " + subprocess.check_output(command, shell=True)