如果这个Python上的python脚本我怎么能得到一个价值?

时间:2018-02-03 11:59:27

标签: python linux awk cut

嘿,我正在尝试新的覆盆子pi,我不得不在这里发帖,因为我是一个菜鸟。我试图通过以下命令获取我的CPU的温度:

cmd = "vcgencmd measure_temp | awk -F"=|'" '{print $2}'
Temp = subprocess.check_output(cmd, shell = True )`

当我运行vcgencmd measure_temp时,我得到temp = x' C,其中x = 30 / 30.5 / 40.8等。我想得到这些数字,所以我可以做出这样的Ifelse语句:

   If Temp >= 40
   print ("40+")
   elif Temp >=35
   print ("35+")
   else: 
   print ("Below 35")

但我总是得到这种语法错误

2 个答案:

答案 0 :(得分:0)

您在cmd的作业中引用了问题。您使用"作为Pythong字符串周围的分隔符,也使用shell命令中-F的参数。那就是Python字符串的结尾。在shell参数周围使用单引号。

cmd = "vcgencmd measure_temp | awk -F'=|' '{print $2}'"

Yuo还在你的if声明中遗漏了冒号和缩进。 Python区分大小写,因此If应为if

if Temp >= 40:
    print ("40+")
elif Temp >=35:
    print ("35+")
else: 
    print ("Below 35")

答案 1 :(得分:0)

您的代码存在许多问题,例如您的字符串定义中的"在您不想要的时候关闭字符串,以及缺少冒号和在if / elif / else语句后缩进。 (还有一个注释,如PEP 8 style guide中提到的那样,尽量不使用像Temp这样的变量名称,因为它不是常见的标准样式之一)

这是应该工作的代码的更新版本:

cmd = "vcgencmd measure_temp | awk -F '=|' '{print $2}'"
temp = subprocess.check_output(cmd, shell = True)

if temp >= 40:
    print("40+")
elif temp >= 35:
    print("35+")
else: 
    print("Below 35")