两个 python 程序可以同时写入和读取同一个 HDF5 文件吗

can two python programs write and read a same HDF5 file at same time

我有 2 个 python 程序:

1)data reciever: It's a TCP SERVER writen in tornado,about 3,000 rows of data will be sent to it every second. here is the hander:

def _on_data_rev(data_list):
    tickstore_file=r"d:\data16_01_11.h5"
    tempdf=pd.DataFrame(data_list)
    hdf_output = pd.HDFStore(tickstore_file, complib='blosc')
    hdf_output['_'+str(int(time.time()))]=tempdf
    hdf_output.flush()

数据来的很快,所以这个程序只做保存工作,没有别的。

2)data analysis:program 2 will analysis the lastest data on the same file every second

我可以同时读取HDF5文件吗?这会破坏 HDF5 文件吗?

您要查找的是 HDF5 的单写入器多 Reader (SWMR) 功能。

SWMR 在上面被列为 new in the 1.10 release and has a fair bit of documentation

它也在 h5py 版本 2.5.0 中。

至于pandas中的支持,我不太确定,因为我不使用它。