python - 将数据附加到现有的 pytables 表

标签 python pytables

我是 PyTables 的新手,并实现了一些在 Pytables 的表中插入和检索数据的基本技术。但是,我不确定如何在现有的 PyTables 表中插入数据,因为我在 tutorial 中读取/获取的所有内容正在创建一个新表(使用 h5file.createTable() 方法)。以下是教程中关于将数据插入从头开始创建的 PytTables 表的基本代码:

h5file = openFile("tutorial1.h5", mode = "w", title = "Test file")
group = h5file.createGroup("/", 'detector', 'Detector information')
table = h5file.createTable(group, 'readout', Particle, "Readout example")

for i in xrange(10):
    particle['name']  = 'Particle: %6d' % (i)
    particle['TDCcount'] = i % 256
    particle['ADCcount'] = (i * 256) % (1 << 16)
    particle['grid_i'] = i
    particle['grid_j'] = 10 - i
    particle['pressure'] = float(i*i)
    particle['energy'] = float(particle['pressure'] ** 4)
    particle['idnumber'] = i * (2 ** 34)
    # Insert a new particle record
    particle.append()

    table.flush()

附言有一个 place在本教程中,讨论了将数据附加到现有表,但使用了从头开始创建的表,并且基本上不知道如何选择预先存在的表来附加数据。请帮忙。谢谢。

最佳答案

您需要以附加模式"a" 打开您的文件。也不要再次创建组和表。这将附加另外 10 行:

import tables


class Particle(tables.IsDescription):
    name      = tables.StringCol(16)   # 16-character String
    idnumber  = tables.Int64Col()      # Signed 64-bit integer
    ADCcount  = tables.UInt16Col()     # Unsigned short integer
    TDCcount  = tables.UInt8Col()      # unsigned byte
    grid_i    = tables.Int32Col()      # 32-bit integer
    grid_j    = tables.Int32Col()      # 32-bit integer
    pressure  = tables.Float32Col()    # float  (single-precision)
    energy    = tables.Float64Col()    # double (double-precision)

h5file = tables.openFile("tutorial1.h5", mode = "a")
table = h5file.root.detector.readout

particle = table.row

for i in range(10, 20):
    particle['name']  = 'Particle: %6d' % (i)
    particle['TDCcount'] = i % 256
    particle['ADCcount'] = (i * 256) % (1 << 16)
    particle['grid_i'] = i
    particle['grid_j'] = 10 - i
    particle['pressure'] = float(i*i)
    particle['energy'] = float(particle['pressure'] ** 4)
    particle['idnumber'] = i * (2 ** 34)
    # Insert a new particle record
    particle.append()

h5file.close()

关于python - 将数据附加到现有的 pytables 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16784564/

相关文章:

python - 如何在Python中找到最近添加到队列中的项目?

python - PyTables 有什么优势?

Python、PyTables - 利用内核内搜索

python - 当结果很大时,在 pytable 中使用索引搜索比不使用索引要慢

Python、pygame、py2exe

javascript - Python:setExtreme 后从 Highcharts 读取数据

python - 异步: Why is awaiting a cancelled Future not showing CancelledError?

Python 字典 : are keys() and values() always the same order?

python - Pandas HDFStore 表不接受多索引列

python - Pandas HDFStore : changing dtype of indexes