如何更新其他程序正在读取的数据文件而不损坏数据?(Linux/Python)
我一直在制作一个Python程序,它将数据实时累积到如何更新其他程序正在读取的数据文件而不损坏数据?(Linux/Python),python,linux,atomic,cp,mv,Python,Linux,Atomic,Cp,Mv,我一直在制作一个Python程序,它将数据实时累积到.h5文件中,以便其他程序员可以随时读取该文件 我想确保文件更新时不会损坏,以防其他程序员在我添加数据时读取文件 为了避免这种情况,我想出了一个解决方案,复制($cp)原始文件(foo.h5)并创建temp_foo.h5,然后在temp_foo.h5中添加数据后,用temp_foo.h5覆盖($mv)foo.h5) 要说清楚,它是这样的: $ cp ./foo.h5 ./temp_foo.h5 # Here, I update temp_fo
.h5
文件中,以便其他程序员可以随时读取该文件
我想确保文件更新时不会损坏,以防其他程序员在我添加数据时读取文件
为了避免这种情况,我想出了一个解决方案,复制($cp
)原始文件(foo.h5
)并创建temp_foo.h5
,然后在temp_foo.h5
中添加数据后,用temp_foo.h5
覆盖($mv
)foo.h5
)
要说清楚,它是这样的:
$ cp ./foo.h5 ./temp_foo.h5
# Here, I update temp_foo.h5 file. Then:
$ mv ./temp_foo.h5 ./foo.h5
然而,这种策略似乎效率很低,我有几点担心
$cp
)的时候正在阅读原始的/foo.h5
?好吧,$mv
是原子的,但$cp
不是。在Python脚本读取时复制文件会导致数据损坏吗