Python 如何实时储存下位机发送的数据,数据要发送一天

2020-03-20 13:23:39 +08:00
 cherishxyn
python 如何实时储存下位机发送的数据,因为可能下位机要工作一天,不停的通过串口发送工作参数,本来想着储存成 excel,这样以后用的时候打开 excel 分析就行了,但是不是储存数据多,每次存储必须要打开 excel,这样的话会卡吗,有没有什么储存的方式比较快捷,有没有可能不打开 excel 追加存储,或者其他存储方式,

新手诚心请教,因为自己做下位机,很多时候只通过串口不是很方便,于是,就想着自己用 python+pyqt 做个界面,以后自己可以通用。
3800 次点击
所在节点    Python
37 条回复
whileFalse
2020-03-20 13:32:08 +08:00
不考虑数据库吗
cherishxyn
2020-03-20 13:33:36 +08:00
@whileFalse
如果真的要用数据库,我就在多花些时间,我用的功能不复杂,谢谢您的回复
ipwx
2020-03-20 13:35:17 +08:00
。。。你先随便找个格式存储,每过一天批量转换成 excel 不就行了???
cherishxyn
2020-03-20 13:39:26 +08:00
@ipwx 你的意思是,比如果存储成 json,如果不停的向里面添加数据,数据多了会卡吗,是不是每次添加数据前都要打开,这样随着数据多,是不是意味着就卡了
bearqq
2020-03-20 13:41:55 +08:00
建议存.csv ,格式了解一下
同时数据量到一定时候就分文件
处理大量数据也不建议用 excel,建议自己撸 python
数据注重查询的话可以用数据库,否则直接存文件也没问题
ipwx
2020-03-20 13:42:07 +08:00
@cherishxyn 你为啥每次添加记录都要打开一遍文件。

保持一个开着的文件,写一个后台线程存储,前台线程接收数据不就行了么?
Juszoe
2020-03-20 13:42:16 +08:00
sqlite 不知道符不符合你的需求
ipwx
2020-03-20 13:42:18 +08:00
另外每天换一个文件。
loading
2020-03-20 13:43:57 +08:00
存 sqlite 或者更粗暴存 txt,
一个数据一行,文本好分析,配合文本工具,多大文件都能秒开。
loading
2020-03-20 13:45:06 +08:00
你只要花几分钟看看 python 如何读一个文件就行了,按行读取。
cherishxyn
2020-03-20 13:45:40 +08:00
@ipwx 因为我想着如果掉点了,就没了,不过,现在想来,省事的话就可以用这种,毕竟我要求不是特别严格,只不过占些内存而已,看大家的回答,我想这几天在学习下数据库
ipwx
2020-03-20 13:46:10 +08:00
@cherishxyn

f.flush()
open('xxx.txt', 'a')
mazyi
2020-03-20 13:46:27 +08:00
这不是 python 的问题,是设计问题
ipwx
2020-03-20 13:46:56 +08:00
@cherishxyn 而且文件缓冲区是固定的,不是说 f.close 之前就不存任何数据进去,而是 f.close 之前没打满缓冲区或者没调用 .flush() 就不写入。超过缓冲区大小会写入一批的。
loading
2020-03-20 13:56:38 +08:00
物联网用的多的是时序数据库,你了解一下,应该很适合你。
cherishxyn
2020-03-20 13:57:31 +08:00
@ipwx 谢谢,明白了
Ediacaran
2020-03-20 13:59:37 +08:00
Append csv 文件
cherishxyn
2020-03-20 14:00:22 +08:00
@loading 感谢仁兄的传授
cherishxyn
2020-03-20 14:12:42 +08:00
@bearqq 谢谢
qile1
2020-03-20 17:46:38 +08:00
检验科仪器每天都传输数据,一般通用方法是保存一份 txt 文件,同时解析一份结果保存一份到数据库

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/654554

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX