我应该重复 open/close 一个文件还是让它打开一段时间(~1 周)?

Should I open/close a file repeatedly or keep it open for an extended period of time (~1 week)?

我正在为马尔可夫链 Monte Carlo 反演程序实施数据收集。但是,MCMC 运行s 可能需要一周或更长时间才能完成!在 运行:

开头打开文件会不会更好
with h5py.File('my_data.hdf5', 'r+', libver='latest') as fp:
    fp.swmr_mode = True
    mcmc_run(fp)

或者每次我想添加一个数据集(在mcmc_run()内)

with h5py.File('my_data.hdf5', 'r+', libver='latest') as fp:
    fp.swmr_mode = True
    fp['dataset'] = new_data

我必须为每次接受保存超过 9 个数据集的大约 7 MB(大约一周的计算时间总共 500 个,~5000 次迭代)。不幸的是,数据来自迭代中的几个不同对象,因此我无法将它们分组并在每次接受时打开文件一次。

[发表评论作为回答]

跑这么久,你可能要考虑停电了(作为MC老手,这是我最大的恐惧)。我建议关闭并重新打开该文件,因为它可能更安全,并且在 运行 多天的情况下,在停电、计算机崩溃等情况下不太可能使文件容易损坏。