我的用例需要在数据可用时立即将数据存储在磁盘上。我正在使用Raspberry PI和少量激光器。激活/禁用激光后,将使用时间戳记,并将其存储在磁盘上。仅在“武装”激光器时存储数据。它们也可以处于“空闲”状态(它们仍在工作,但是时间戳被忽略)。同样,可以多次布防/撤防激光器。
最有效的方法是什么?使用平面csv / xml / txt还是其他? RPI中使用的实际SD卡限制为8GB。
另一个问题,当使用open()
方法时,我应该在执行close()
方法后write()
还是在脚本本身运行的情况下保持打开状态(脚本是一直运行直到用户决定退出)?
答案 0 :(得分:0)
听起来像python吗?
如果是这样,您可以使用with
写入文件:
with open('/path', 'w') as f: f.write('stuff')
,执行退出该块时,文件描述符将自动关闭。
但是,关于其他问题,这取决于您的用例。为什么需要立即提供?会否正在读取其他进程?这会发生多快?您还需要与时间戳一起保存其他数据位吗?大概是那时激光是打开还是关闭?
很可能,一个轻巧的数据库(例如SQLite)对您来说是个不错的解决方案。磁盘上的存储空间大约与“平面”文件(例如您引用的.txt或.csv)中的存储空间相同。会很快。并且消除了对管理实际写作的担忧。