我正在使用Occidentalis v0.2并使用python脚本调用modprobe来读取一个DS18B20的温度!
我也是python的新手,所以请耐心等待,这只是我代码的一小部分:
with open(path, "r") as f:
contentArray = []
for line in f:
contentArray.append (line)
f.close
s = contentArray[0]
if s.find('YES'):
return contentArray[0]
else:
return 88
示例:contentArray [0]可以将结果显示为:
68 01 4b 46 7f ff 0c 10 05 : crc=3e NO
或:
68 01 4b 46 7f ff 08 10 05 : crc=05 YES
如果上述代码有误,我该如何找到YES
?因为这说明了
正确的CRC。如果我有,我实际上想要返回contentArray[1]
(其中
包含正确的温度值。)
答案 0 :(得分:1)
解决了,我不得不在代码中进行此更改:
s = contentArray[0]
if s.find('YES') != -1:
return contentArray[0]
else:
return 88
答案 1 :(得分:0)
谢谢,下次我会尝试.find命令。我只是为bash编写了一个小的单行程,以节省温度读数。当然,还有很大的改进空间。
while true; do echo -n "$(date '+%D %T'); " >> output.csv; cat /sys/devices/w1_bus_master1/*/w1_slave | grep -A 1 YES | grep -m 1 t= | cut -c30- >> output.csv; sleep 1; done
如您所见,grep命令可以找到关键字“YES”和“t =”。