python3-numpy: Ajout d'un fichier à l'aide de numpy savetxt
Je suis en train d'ajouter des données à un fichier à l'aide de numpy est savetxt fonction. Ci-dessous est le minimum de travail exemple
#!/usr/bin/env python3
import numpy as np
f=open('asd.dat','a')
for iind in range(4):
a=np.random.rand(10,10)
np.savetxt(f,a)
f.close()
L'erreur que j'ai eu, est quelque chose sur le type de l'erreur
Fichier "/usr/lib/python3/dist-packages/numpy/lib/npyio.py" de ligne, 1073,
dans savetxt
fh.écrire(asbytes(format % n-uplet(ligne) + newline)) TypeError: doit être str, pas d'octets
Cette erreur ne se produit pas dans python2 donc, je me demande quel peut être le problème. Quelqu'un peut-il m'aider?
Vous devez ouvrir votre fichier en binaire au lieu du mode texte:
Double Possible: stackoverflow.com/questions/14437054/....
Qui a résolu le problème, merci
f=open('asd.dat','ba')
. Pensez également à utiliser le with
instruction pour s'assurer que votre descripteur de fichier est correctement fermé dans le cas où une erreur se produit.Double Possible: stackoverflow.com/questions/14437054/....
Qui a résolu le problème, merci
OriginalL'auteur Meenakshi | 2015-01-05
Vous devez vous connecter pour publier un commentaire.
Vous devez ouvrir le fichier en mode binaire.
de référence:
python - Comment écrire un tableau numpy vers un fichier csv? - Débordement De Pile Comment écrire un tableau numpy vers un fichier csv?
'b' option ne fonctionne pas avec np.savetxt sur ma machine. Quelqu'un peut confirmer?
Mon python (python-3.5, numpy-1.13.3 sur Ubuntu 16.04) code ci-dessus. Si vous essayez de chaîne, ajoutez le type de données (
np.savetxt(f, ["AAA"], "%s")
)J'ai pensé 'b' option est pour l'écriture des données dans le format illisible par un humain. Mais le code ci-dessus ne fonctionne pas sans " b " option. Désolé pour mon incompréhension.
OriginalL'auteur user4352571