J'utilise le paquet h5py python pour lire des fichiers au format HDF5. (par exemple, somefile.h5) Je voudrais écrire le contenu d'un ensemble de données dans un fichier texte.Qu'est-ce qu'un moyen rapide de produire un ensemble de données h5py en texte?
Par exemple, je voudrais créer un fichier texte avec le contenu suivant: 1,20,31,75,142,324,78,12,3,90,8,21,1
Je suis en mesure de accéder à l'ensemble de données en python utilisant ce code:
import h5py
f = h5py.File('/Users/Me/Desktop/thefile.h5', 'r')
group = f['/level1/level2/level3']
dset = group['dsetname']
mon approche naïve est trop lent, parce que mon jeu de données a plus de 20 000 entrées:
# 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
est-il un moyen plus rapide d'écrire à un fichier? Peut-être que je pourrais convertir l'ensemble de données dans un tableau NumPy ou même une liste Python, puis utiliser un outil d'écriture de fichier?
(je pourrais expérimenter concaténer les valeurs dans une chaîne plus grande avant d'écrire un fichier, mais j'espère qu'il ya quelque chose de tout à fait plus élégant)
En Python, c'est presque toujours une mauvaise idée d'utiliser 'range (len (dset))'. Préférez toujours les itérateurs, en particulier parce que pour un grand 'dset',' range' est en train de créer et d'allouer une liste d'entiers 'len (dset)'. –