2017-05-19 54 views
0

我正在使用覆盆子pi中的python進行項目。
我有一個日誌文件,連續記錄時間和在一個特定的第二個命令發送給它(從熱水器Shed命令)。從日誌文件中讀取最後一行

我想寫一個代碼,讀取最後一行在該日誌文件中,並且在發送一個棚子命令時關閉GPIO X(並且在最後一行僅僅是一個時間戳時不做任何事情)。

這是一種算法,使其明確:
- 讀取日誌文件
- 如果最後一行是大棚命令:關閉GPIO X
----其他:什麼也不做

我試過一個方法,但它不讀取最後一行,它讀取每一行,並在到達最後一行時返回到第一行。我只想讀最後一行。

Here is a code I tried: 
import time 
fileHandle = open ('UCM.log') 
lineList = fileHandle.readlines() 
fileHandle.close() 

while True: 
    #for line in (open(UCM.log).readlines()): 
    if " Sending Application message: Shed" in lineList[len(lineList)-1]: 
     time.sleep 
     print 'Shed!' 
+3

發佈您嘗試過的代碼。人們更容易調試,而不是寫一個全新的程序。 – Darkstarone

+0

這裏是我嘗試了代碼:在(打開(UCM #for行:導入時間 文件句柄=開放( 'UCM.log') lineList = fileHandle.readlines() fileHandle.close() 而真.LOG).readlines()): 如果 「\t發送應用程序的消息:棚」 在lineList [長度(lineList)-1]: '!拱棚' \t time.sleep \t打印 –

+0

您可以編輯自己的問題並在代碼塊中添加代碼以便於編輯。就目前而言,沒有人可以使用你的代碼,因爲我們不知道你的縮進是什麼。 – Darkstarone

回答

0

顯然你的問題是從最後讀取文件。您可以檢查以下問題的答案: Read a file in reverse order using python

+0

我'米不試圖反向讀取它。我只想讀最後一行。如果該行是:「\t發送應用程序消息:Shed」,我想關閉一個GPIO。 –

相關問題