【发布时间】:2015-12-02 22:11:37
【问题描述】:
我正在使用 h5py 修复一个 python 脚本。它包含如下代码:
hdf = h5py.File(hdf5_filename, 'a')
...
g = hdf.create_group('foo')
g.create_dataset('bar', ...whatever...)
有时这会在一个已经有一个名为 'foo' 的组的文件上运行,在这种情况下,我会看到“ValueError: Unable to create group (Name already exists)”
解决此问题的一种方法是将一个简单的行替换为 create_group 为四行,如下所示:
if 'foo' in hdf.keys():
g = hdf['foo']
else:
g = hdf.create_group['foo']
g.create_dataset(...etc...)
有没有更简洁的方法来做到这一点,也许只有一行?就像标准 C 库中的文件一样,“a”模式将附加到现有文件,或者创建一个文件(如果它不存在)。
数据集也是如此 - 我有
create_dataset('bar', ...)
但应该先检查:
if 'bar' in g.keys():
d = g['bar']
else:
d = g.create_dataset('bar')
我的愿望:找到 h5py 有名为 create_or_use_group() 和 create_or_use_dataset() 的方法。究竟存在什么?
【问题讨论】:
-
不,这个问题只是询问测试节点是否存在。我想创建或使用它,而不用写出“if”语句,最好在一行中。
标签: h5py