在写入之前检查数据是否相同

时间:2014-07-11 15:10:05

标签: python bash arduino

我的温度来自我的arduino通过我的mac上的串口。我需要将数据写入文件,如果数据相同或者什么都没有,我不希望我的脚本从/dev/tty.usbserial-A5025XZE(串行端口)写入数据。温度是格式" 12.32"并且每5秒发送一次。

3 个答案:

答案 0 :(得分:0)

如果您在写入文件之前能够阅读该文件:

def is_file_identical(data):
    f_data = ''
    with open("path/to/filename") as f:
        f_data = f.read()

    return data == f_data

print is_file_identical('foo') # True
print is_file_identical('bar') # False

答案 1 :(得分:0)

从串口读取数据并将数据写入文件的脚本可以处理数据相同的情况。你可以这样做:

import serial
ser = serial.Serial(0)
t = ""
while True:
    newT = serial.readline()
    if t!=newT:
        with open("/your/file") as f:
            f.write(newT)
        t=newT

每次温度变化时,都会向/ your / file附加一个新温度。当然,您需要调整serial.Serial(0)/your/file。我假设您使用类似this的内容。

答案 2 :(得分:0)

只需将arduino的输出保存到临时变量,然后将其与另一个写入文件的值进行比较。如果不同,请更改写入新温度的最后一个值并将其写入文件。