我在pandas中使用Pytables集成将一堆pandas DataFrames写入h5文件。从那以后我删除了h5文件中的一些组,我想重新打包它以便回收空间。根据我的发现,我知道我需要使用Pytables ptrepack
工具。但是我无法让它发挥作用。如果我在我的脚本中弄乱了某些内容,或者我实际上遇到了pytables中的错误,有人可以告诉我吗?如果我搞砸了你可以给我一个导入的例子,并调用ptrepack简单地重新打包一个h5文件以节省空间吗?
这是我的脚本和我得到的错误:
当我查看anaconda的pytables文件夹中的ptrepack.py脚本时,我也看到我应该能够向它传递帮助标志..但这也无法正常工作。这是我尝试获取帮助标志时出现的错误
目前我正在使用Windows 10机器
以下包装版本:
python 3.5.1
pytables:3.2.2
大熊猫:0.18.0
谢谢!
答案 0 :(得分:3)
好的,首先,要在命令提示符下显示帮助对话框,您必须执行ptrepack -h
或ptrepack --help
我没有设法让脚本在python中运行,因为它似乎是专门为命令行而设计的 - 但是我确实找到了这个非常有用的笔记本(Reclaiming HDF5 Space),它有以下解决方案
from subprocess import call
outfilename = 'out.h5'
command = ["ptrepack", "-o", "--chunkshape=auto", "--propindexes", filename, outfilename]
请注意,这实际上只是启动一个调用重新包装函数的子进程。