问题描述
我一直在制作一个Python程序,该程序实时将数据累积到.h5
文件中,以便其他程序员可以随时读取该文件。
我想确保文件被更新而不会损坏,以防其他程序员在添加数据时读取文件。
为避免这种情况,我想出了一种解决方案,用于复制($cp
)原始文件(foo.h5
)并创建temp_foo.h5
,然后将数据附加到temp_foo.h5
,用$mv
覆盖(foo.h5
)temp_foo.h5
。
为清楚起见,它类似于:
$ cp ./foo.h5 ./temp_foo.h5
# Here,I update temp_foo.h5 file. Then:
$ mv ./temp_foo.h5 ./foo.h5
但是,这种策略似乎效率很低,我担心的是几件事。
-
如果程序员在应付(
./foo.h5
)时正在阅读原始的$cp
,该怎么办? AFAIK,$mv
是原子的,而$cp
不是原子的。在读取Python脚本时复制文件会导致数据损坏吗? -
我提出的这种策略过于庞大。还有其他防腐败最佳实践来应对这种情况吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)