使用ptrepack回收hdf5文件中

时间:2016-05-16 23:07:13

标签: python python-3.x pytables

我在pandas中使用Pytables集成将一堆pandas DataFrames写入h5文件。从那以后我删除了h5文件中的一些组,我想重新打包它以便回收空间。根据我的发现,我知道我需要使用Pytables ptrepack工具。但是我无法让它发挥作用。如果我在我的脚本中弄乱了某些内容,或者我实际上遇到了pytables中的错误,有人可以告诉我吗?如果我搞砸了你可以给我一个导入的例子,并调用ptrepack简单地重新打包一个h5文件以节省空间吗?

这是我的脚本和我得到的错误:

error when running ptrepack

当我查看anaconda的pytables文件夹中的ptrepack.py脚本时,我也看到我应该能够向它传递帮助标志..但这也无法正常工作。这是我尝试获取帮助标志时出现的错误

help flag error

目前我正在使用Windows 10机器 以下包装版本:
python 3.5.1
pytables:3.2.2
大熊猫:0.18.0

谢谢!

1 个答案:

答案 0 :(得分:3)

好的,首先,要在命令提示符下显示帮助对话框,您必须执行ptrepack -hptrepack --help 我没有设法让脚本在python中运行,因为它似乎是专门为命令行而设计的 - 但是我确实找到了这个非常有用的笔记本(Reclaiming HDF5 Space),它有以下解决方案

from subprocess import call
outfilename = 'out.h5'
command = ["ptrepack", "-o", "--chunkshape=auto", "--propindexes", filename, outfilename]

请注意,这实际上只是启动一个调用重新包装函数的子进程。