2012-09-11 49 views
2

我使用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

這樣的問題不是RaspberryPI相關的,所以我認爲你應該使用其他的SE頁面 - 比如stackoverflow。 –

+0

這很好,你找到了答案,但正如@ KrzysztofAdamski所說,這個問題可能更適合Stack Overflow。讓我們來關閉這個。 –

+0

你們都是對的,但從某種意義上說,它與Occidentalis有關,那是一種銼刀的發行。即使它主要只是python問題。 :) – Christian

回答

1

解決了,我只好在代碼中這種變化:

s = contentArray[0] 
if s.find('YES') != -1: 
    return contentArray[0] 
else: 
    return 88 
0

謝謝你,我會在下一次嘗試的.find命令。我只是爲了節省溫度讀數而編寫了一些簡單的腳本。當然,還有很大的改進空間。

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 

正如您所看到的,關鍵字「YES」和「t =」可以通過grep命令找到。

相關問題