【发布时间】:2014-04-01 20:46:19
【问题描述】:
我正在尝试以“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 0
当我删除“打印”行时,“29”也没有显示。因此,当我使用打印语句时,脚本会出于某种原因(?!)返回“29”,然后突然返回 0,而 29 实际上是正确的值。
我希望我能得到这个:
Temp: 29
我尝试使用 os.system 并给出相同的结果。 我也尝试将命令直接添加到“command = str(subprocess.call(”)中,但它给出了相同的结果。 我已经阅读了 os.system 信息页面和 subprocess.call 信息页面,但没有找到解决方案。然后我用谷歌搜索了 AWK 命令,也许它会产生一些疯狂的输出,但我找不到任何有用的东西。
Linux 上的 Python 2.7 3.8.0-34-generic #49-Ubuntu SMP Tue Nov 12 18:00:10 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
【问题讨论】:
标签: python python-2.7 subprocess