Serial data logging with python(使用 python 进行串行数据记录)
本文介绍了使用 python 进行串行数据记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
简介:
我需要编写一个实时读取串行数据并将其写入文本文件的小程序.我在读取数据方面取得了一些进展,但我没有成功地将这些信息存储在新文件中.
I need to write a small program that reads serial data in real-time and writes it to a text file. I have made some progress with reading the data, but I haven't had any success storing this information in a new file.
这是我的代码:
from __future__ import print_function
import serial, time, io, datetime
from serial import Serial
addr = "COM1" ## serial port to read data from
baud = 9600 ## baud rate for instrument
ser = serial.Serial(
port = addr,
baudrate = baud,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=0)
print("Connected to: " + ser.portstr)
## this will store each line of data
seq = []
count = 1 ## row index
while True:
for i in ser.read():
seq.append(i) ## convert from ACSII?
joined_seq = ''.join(str(v) for v in seq) ## Make a string from array
if i == '
':
print("Line: " + str(count) + "" + str(datetime.datetime.now()) + joined_seq) ## append a timestamp to each row of data
seq = []
count += 1
break
ser.close()
谢谢!
推荐答案
也许你可以将这样的东西应用到你的代码中:
maybe you can adapt something like this to your code :
filename="myFile.txt"
datafile=open(filename, 'a')
while True:
data = ser.readline()
datafile.write(data)
datafile.close()
ser.close()
编辑如果一切正常,只需写入文件尝试:
EDIT if everything was working well just to write in a file try :
from __future__ import print_function
import serial, time, io, datetime
from serial import Serial
addr = "COM1" ## serial port to read data from
baud = 9600 ## baud rate for instrument
ser = serial.Serial(
port = addr,
baudrate = baud,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=0)
print("Connected to: " + ser.portstr)
filename="myFile.txt"
datafile=open(filename, 'a')
## this will store each line of data
seq = []
count = 1 ## row index
while True:
for i in ser.read():
seq.append(i) ## convert from ACSII?
joined_seq = ''.join(str(v) for v in seq) ## Make a string from array
if i == '
':
datafile.write("Line: " + str(count) + "" + str(datetime.datetime.now()) + joined_seq) ## append a timestamp to each row of data
seq = []
count += 1
break
datafile.close()
ser.close()
这篇关于使用 python 进行串行数据记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:使用 python 进行串行数据记录
基础教程推荐
猜你喜欢
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- 筛选NumPy数组 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01