从日志文件中读取最后一行

3

我正在树莓派上使用Python开发一个项目。
我有一个日志文件,在该文件中持续记录时间,并在特定的时间发送命令(来自热水器的Shed命令)。

我正在尝试编写代码,读取该日志文件的最后一行,并在发送Shed命令时关闭GPIO X(如果最后一行只是时间戳,则不执行任何操作)。

以下是算法以便更清楚地说明:
- 读取日志文件
- 如果最后一行是Shed命令:关闭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
这是我尝试的代码: 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!' - Motlaq AlMutairi
你可以编辑自己的问题并在代码块中添加代码以便更容易编辑。目前来看,没有人能够使用你的代码,因为我们不知道你的缩进是什么样的。 - Darkstarone
可能是如何在Python中尾随日志文件?的重复问题。 - stovfl
1个回答

0

1
我不是试图倒读它。我只想读取最后一行,并且如果该行是:"发送应用程序消息:Shed",我想关闭一个GPIO。 - Motlaq AlMutairi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接