2017-05-19 170 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。 –