Python 打印subprocess.call结果
我试图用一个字符串返回驱动器的温度,前缀为“Temp:”。为了达到这个目的,我运行了一个简单的脚本,将字符串与命令的输出连接起来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”也
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/Linuxsubprocess.call()
返回(其中0
表示成功)。如果需要进程输出,请使用:
呸,你有闪电般的手指:P@JoranBeasley我看到Martijn在巴哈马度假。这是他不在时的回答。
Temp: 29
print "Temp " + subprocess.check_output(command, shell=True)