我使用h5py python包來讀取HDF5格式的文件。 (例如somefile.h5) 我想將數據集的內容寫入文本文件。什麼是將h5py數據集輸出到文本的快速方法?
例如,我想創建一個文本文件,其內容如下: 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列表,然後使用一些文件寫入工具?
(我可以寫入文件之前串接值到一個較大的字符串嘗試,但我希望有什麼東西完全是更優雅)
在Python中,使用'range(len(dset))'幾乎總是一個糟糕的主意。總是比較喜歡迭代器,特別是因爲對於大'dset','range'實際上是創建並分配了一個'len(dset)'整數列表。 – 2011-06-16 16:55:30