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

标签 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']

我天真的方法太慢了,因为我的数据集有超过 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

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

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

最佳答案

由于出色的 join 字符串方法,构建大字符串具有节省对愚蠢的“最后一次切换”的需求的巨大优势:替换整个循环,

txtfile.write(','.join(repr(item) for item in dset))

我不确定您要求您的代码更加优雅......;-)

关于python - 将 h5py 数据集输出到文本的快速方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3020240/

相关文章:

iOS App,获取文本内容

ios - 根据实际可见字母高度在 UILabel 中垂直居中文本

压缩性能与 hdf5 文件中的 block 大小相关

python - 在 Python 3.7 中使用 ftplib 时,检测 ftp 连接是否关闭或未打开的正确方法是什么?

python - 模式后面不再有数字正则表达式 python

python - Vim 中类似 Pycharm 的自动补全

c++ - 使用 HDF5 库重命名和删除 HDF5 文件中的组

python - Libsvm:工具/easy.py

text - 如何在 SublimeText 3 中添加具有固定长度和预定义数字的前导零

hdf5 - 我可以创建指向 hyperslab 的 HDF5 链接吗?