我的用例需要在数据可用时立即将数据存储在磁盘上。我用的是覆盆子派和一些激光。一旦激光器被激活/停用,就会记录时间戳,并将其存储在磁盘上。只有在激光“武装”的情况下,数据才会被存储。它们也可以处于“空闲”状态(它们仍在工作,但时间戳被忽略)。此外,激光可以多次武装/解除武装。
做这件事最有效的方法是什么?使用平面csv/xml/txt还是其他什么?RPI中使用的实际SD卡限制为8 8GB。
另一个问题是,当使用open()方法时,我应该在执行write()方法后close()文件,还是应该在脚本本身运行时保持打开(脚本一直在运行,直到用户决定退出)?
发布于 2019-04-22 16:38:50
听起来像蟒蛇吗?
如果是这样,您可以使用with写入您的文件
with open('/path', 'w') as f: f.write('stuff')
当执行退出该块时,文件描述符将自动关闭。
然而,关于你的其他问题,这取决于你的用例。为什么它需要立即可用?另一个进程会读取它吗?这将会以多快的速度发生?是否还有其他一些数据需要与时间戳一起保存--大概是激光当时是开着还是关着的?
对于您来说,一个好的解决方案可能是像SQLite这样的轻量级数据库。磁盘上的存储空间大致相当于“平面”文件中的存储空间,例如您引用的.txt或.csv。它会很快的。而且它消除了对实际写作管理的担忧。
https://stackoverflow.com/questions/55791341
复制相似问题