我仍在学习与Arduino和RPI一起探索Python编程力量的初学者。好吧,我写了一条简短的代码(从不同的教程和帖子中获得了帮助),用于将接收到的传感器数据以及时间戳将接收到的传感器数据写入.txt文件中。这是代码:
import serial, io
import numpy
import matplotlib.pyplot as plt
from drawnow import *
from datetime import datetime
arduinoData = serial.Serial('com3',9600)
outfile = 'C:/Python27/test.txt'
sio=io.TextIOWrapper(io.BufferedRWPair(arduinoData,arduinoData,1),encoding='ascii',newline='r')
with open(outfile,'w') as f:
while True: # while loop that loops forever
while (arduinoData.inWaiting()==0): #Wait here until there is data
pass #do nothing
arduinoString = sio.readline()
f.write(datetime.now(),isoformat() + 't' + arduinoString + 'n')
f.flush()
f.close()
- 请忽略 drawnow 和 matplotlib 库,因为我以后会使用它们可视化数据。/li>
问题是,尽管文件是在上述位置创建的,但我没有在文件中写任何东西。我可能会完全弄乱。因此,我需要有关该程序问题的指导。
您的支持深表感谢!非常感谢!
欢呼
PRAMIT SOOD
您永远不会摆脱无限的while True:
循环。
python中的凹痕很重要。
您可能打算这样做:
with open(outfile,'w') as f:
while True: # while loop that loops forever
while (arduinoData.inWaiting()==0): #Wait here until there is data
pass #do nothing
arduinoString = sio.readline()
f.write(datetime.now(),isoformat() + 't' + arduinoString + 'n')
f.flush()
也不要关闭文件,如果要继续写入文件。