你很亲密。这两条线有问题:temp = os.popen('vcgencmd measure_temp').readline()
if temp > 65:
这里,temp是一个字符串。在尝试将temp与整数进行比较之前,需要将其转换为整数。假设您正在读取的行是一个与某个温度相对应的十进制字符串,您只需调用int(),如下所示:
^{pr2}$
更新因为您发布了您实际尝试解析的输出,所以我们可以使用正则表达式来匹配输出,并使用^{} module。我们还将把它放在一个函数中:def measure_temp():
raw = os.popen('vcgencmd measure_temp').readline()
m = re.match("temp=(\d+\.?\d*)'C", raw)
if not m:
raise ValueError("Unexpected temperature string: " + raw)
return float(m.group(1))
temp = measure_temp()
注意,我在字符串中的实际温度小数点周围使用了一个捕捉组,并使用m.group(1)访问它。在
现在我们把它放在一起。另外,当代码没有达到预期效果时,包含一些“调试打印”非常有用,例如:def measure_temp():
raw = os.popen('vcgencmd measure_temp').readline()
m = re.match("temp