我仍在向初学者学习如何使用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()
问题是虽然文件是在所述位置创建的,但我没有在文件中写入任何内容。我可能会完全搞砸了。因此,我需要指导这个程序出了什么问题。
非常感谢您的支持!非常感谢你!
欢呼声
Pramit Sood
答案 0 :(得分:0)
你永远不会离开无限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()
如果你想继续写文件,也不要关闭文件。