2010-11-26 24 views
9

J'ai une question assez simple. J'utilise Python pour calculer un vecteur n × 12Écrire des lignes de plus de 80 caractères dans le fichier de sortie [Python]

y = numpy.array([V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12]) 

que j'ajoute après chaque calcul de boucle.

Mon problème est que lorsque j'essaie de l'enregistrer dans un fichier ou de l'imprimer Python casse automatiquement le résultat en trois lignes car ma sortie dépasse généralement 200 caractères. Existe-t-il un moyen de supprimer ce comportement de 80 caractères/ligne? Merci d'avance.

+3

Montrez du code. Et êtes-vous sûr que le fichier contient réellement des sauts de ligne et que ce n'est pas votre terminal ou ce que vous utilisez pour le voir? – ThiefMaster

+0

Ok ... c'est assez compliqué de vous montrer comment je vais, mais croyez-moi sur parole; c'est un vecteur d'une ligne avec 12 éléments et plus de 80 caractères. Ce qui compte c'est que j'ouvre un fichier, fais f.write (str (y [:, 0]). Replace ('[', ''). Replace (']', '') + '\ t' + str (y [:, 1]). replace ('[', ''). replace (']', '') + .....) puis fermez-le. Ma sortie (juste des nombres) est montrée dans 3 lignes. – Saki

+0

p.s. Je ne sais pas si cela fait une différence, mais j'utilise IDLE. – Saki

Répondre

22

Vous pouvez utiliser numpy.savetxt() pour enregistrer un tableau dans un fichier texte tout en contrôlant le formatage. Pour l'imprimer à l'écran, vous avez différentes options pour contrôler la largeur de la ligne. On pourrait appeler

numpy.set_printoptions(linewidth=200) 

pour définir la largeur de la ligne à une valeur plus élevée.

+0

thx Sven, cela fonctionne bien! Merde, c'était rapide! – Saki

+0

Pour moi, l'utilisation du paramètre linewidth pour set_printoptions() n'a absolument aucun effet lors de l'impression d'une matrice sur la console (la sortie est toujours formatée avec les ellipses '...' (dans les deux dimensions)). Quelles sont les autres options? – StefanQ

+0

@StefanQ L'ellipse n'a rien à voir avec la largeur de ligne actuelle. Par défaut, le nombre d'entrées incluses dans la représentation est limité. Cela peut probablement être changé avec 'set_printoptions()'. Veuillez vous référer à la documentation pour plus de détails, ou posez une question distincte, car cela n'a aucun rapport avec cette question ici. –