将h5py数据集输出到文本的快速方法是什么?

kel*_*vin 4 python text hdf5 h5py

我使用h5py python包来读取HDF5格式的文件.(例如somefile.h5)我想将数据集的内容写入文本文件.

例如,我想创建一个包含以下内容的文本文件:1,20,31,75,142,324,78,12,3,90,8,21,1

我可以使用以下代码访问python中的数据集:

import h5py
f     = h5py.File('/Users/Me/Desktop/thefile.h5', 'r')
group = f['/level1/level2/level3']
dset  = group['dsetname']
Run Code Online (Sandbox Code Playgroud)

我的天真方法太慢,因为我的数据集有超过20000个条目:

# write all values to file        
for index in range(len(dset)):
        # do not add comma after last value
        if index == len(dset)-1: txtfile.write(repr(dset[index]))
        else:                    txtfile.write(repr(dset[index])+',')
txtfile.close()
    return None
Run Code Online (Sandbox Code Playgroud)

有没有更快的方法将其写入文件?也许我可以将数据集转换为NumPy数组甚至是Python列表,然后使用一些文件编写工具?

(我可以尝试在写入文件之前将值连接成一个更大的字符串,但我希望有一些更优雅的东西)

Ale*_*lli 5

由于优秀join的字符串方法,构建一个大字符串具有节省愚蠢的"最后一次切换"的巨大优势:替换整个循环,

txtfile.write(','.join(repr(item) for item in dset))
Run Code Online (Sandbox Code Playgroud)

我不确定你要求你的代码有多优雅...... ;-)