我的温度来自我的arduino通过我的mac上的串口。我需要将数据写入文件,如果数据相同或者什么都没有,我不希望我的脚本从/dev/tty.usbserial-A5025XZE(串行端口)写入数据。温度是格式" 12.32"并且每5秒发送一次。
答案 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的输出保存到临时变量,然后将其与另一个写入文件的值进行比较。如果不同,请更改写入新温度的最后一个值并将其写入文件。