1

我正在使用pythonwithpytables来阅读h5 file

所以基本上我正在做的是这样的:

f = t.open_file(file, mode='r')
root = f.root
obj = f.get_node(root, 'density_100m')

问题是我在访问时收到警告get_node

DataTypeWarning: Unsupported type for attribute 'DIMENSION_LIST' in node 'density_100m'. Offending HDF5 class:

它正确输出节点内部的矩阵,但警告仍然存在。

这是hdfViewer中数据的样子: 在此处输入图像描述

问题出在这个 DIMENSION_LIST 上,但我不知道如何在没有警告的情况下访问这个节点。

4

1 回答 1

2

在不知道 DIMENSION_LIST 的实际数据类型的情况下,我的猜测是该文件不是使用 PyTables 创建的,并且 DIMENSION_LIST 属性使用了 PyTables 不知道的数据类型,例如 float16 或类似的东西。只要您不需要显式访问此属性,警告就没什么大不了的。

根据您不显示警告的具体问题,您应该使用普通的Python 警告挂钩来抑制这种行为。鉴于您上面的代码,

import warnings

f = t.open_file(file, mode='r')
root = f.root

with warnings.catch_warnings():
    warnings.simplefilter("ignore")
    obj = f.get_node(root, 'density_100m')

# do stuff with obj
于 2013-09-30T01:12:09.577 回答