Да, вы можете получить доступ к нескольким объектам pytable одновременно.Ниже приведен простой пример, который создает 3 таблицы с использованием массива (300,2) пустых записей, созданного со случайными данными.Это демонстрирует, что вы можете обращаться ко всем 3 таблицам как к объектам таблиц -ИЛИ- как к массивам (или к обоим).
Я не закончил многопоточность с pytables, поэтому не могу помочь с этим.Я предлагаю вам заставить ваш код работать в последовательном режиме, прежде чем добавлять многопоточность.Кроме того, просмотрите документы по таблицам.Я знаю, h5py
имеет специальные процедуры для использования mpi4py
для многопоточности.Pytables может иметь аналогичные требования.
Пример кода
import tables as tb
import numpy as np
h5f = tb.open_file('SO_55445040.h5',mode='w')
mydtype = np.dtype([('word',float),('varchar',float)])
arr = np.random.rand(300,2)
recarr = np.core.records.array(arr,dtype=mydtype)
h5f.create_table('/', 'table1', obj=recarr )
recarr = np.core.records.array(2.*arr,dtype=mydtype)
h5f.create_table('/', 'table2', obj=recarr )
recarr = np.core.records.array(3.*arr,dtype=mydtype)
h5f.create_table('/', 'table3', obj=recarr )
h5f.close()
h5f = tb.open_file('SO_55445040.h5',mode='r')
# Return Table ojbects:
tb1 = h5f.get_node('/table1')
tb2 = h5f.get_node('/table2')
tb3 = h5f.get_node('/table3')
# Return numpy arrays:
arr1 = h5f.get_node('/table1').read
arr2 = h5f.get_node('/table2').read
arr3 = h5f.get_node('/table3').read
h5f.close()