linux - 解析行python

标签 linux python

   self.filename = d.get('filename', '/var/www/html/data/reading.txt')
    syslog.syslog(syslog.LOG_INFO, "pond: using %s" % self.filename)
    self.bind(weewx.NEW_ARCHIVE_RECORD, self.read_file)

def read_file(self, event):
    try:
        with open(self.filename) as f:
            #value = f.read()
            f.seek(-8, os.SEEK_END)
            line = f.readlines()[-1]
            value = line.split(',')
        syslog.syslog(syslog.LOG_DEBUG, "pond: found value of %s" % value)
        event.record['ccwatt'] = float(value[0])
        event.record['cctemp'] = float(value[1])
    except Exception, e:
        syslog.syslog(syslog.LOG_ERR, "pond: cannot read value: %s" % e)

上面的 python 会读取 txt 文件的最后一行,并添加一条新的存档记录,例如:

123,54

当只有一个值可用于记录时,如何更改它以添加存档记录。显然 split(',') 不会对一个值起作用

123 

最佳答案

一个快速的条件语句应该可以解决这个问题:

            if "," in line:
                value = line.split(',')
            else:
                value = line

添加到您的代码中:

    self.filename = d.get('filename', '/var/www/html/data/reading.txt')
    syslog.syslog(syslog.LOG_INFO, "pond: using %s" % self.filename)
    self.bind(weewx.NEW_ARCHIVE_RECORD, self.read_file)

def read_file(self, event):
    try:
        with open(self.filename) as f:
            #value = f.read()
            f.seek(-8, os.SEEK_END)
            line = f.readlines()[-1]
            if "," in line:
                value = line.split(',')
            else:
                value = line
        syslog.syslog(syslog.LOG_DEBUG, "pond: found value of %s" % value)
        event.record['ccwatt'] = float(value[0])
        event.record['cctemp'] = float(value[1])
    except Exception, e:
        syslog.syslog(syslog.LOG_ERR, "pond: cannot read value: %s" % e)

关于linux - 解析行python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49771406/

相关文章:

linux - 系统 V IPC msgrcv 与计时器 Howto

node.js - NodeJS 在 Docker 上安装

linux - 可以在 Linux 上使用 .dll

python - TF : mask random rectangle in image.

python - 可以使用 Altair 将 mark_rule 扩展到图表之外吗?

php - crontab 每分钟执行一个脚本

java - 在 Linux 中以 Java 代码执行 FFmpeg 命令的问题

python - python/scipy 中 3D 方向的直方图

python从套接字流接收图像

python - django - 模型 unicode() 显示外键对象属性