2011-05-31 22 views
5

Estoy escribiendo un programa de python para procesar archivos .hdf, me gustaría dar salida a estos datos a una hoja de cálculo de Excel. Pongo los datos en una matriz como se muestra a continuación:cómo escribir una matriz de python (data = []) para sobresalir?

Código:

data = [] 

for rec in hdfFile[:]: 
    data.append(rec) 

de aquí he creado una matriz 2D con 9 columnas y 171 filas.

Estoy buscando una manera de iterar a través de este conjunto y escribir cada entrada en orden a una hoja. Me pregunto si debería crear una lista en su lugar, o cómo hacerlo con la matriz que he creado.

Cualquier ayuda sería muy apreciada.

+2

¿Puede usted acaba de hacer un archivo delimitado por comas o pestaña y luego abrirlo en Excel? – mrK

+0

Corrija el formato del código. Toda la explicación necesaria sobre el formateo se puede encontrar en la página de edición. Incluso hay una ventana de vista previa debajo del campo de edición. – viraptor

Respuesta

5

Un gran tipo de archivo a tener en cuenta es un CSV o archivo de valores separados por comas. Es un tipo de archivo de texto muy simple (normalmente ya asociado con Excel u otras aplicaciones de hoja de cálculo) donde cada coma separa varias celdas en la misma fila y cada nueva línea en el archivo representa datos en una nueva fila. I.E .:

A,B,C 
1,2,3 
"Hello, World!" 

El ejemplo anterior se traduciría en la primera fila que tiene 3 células, cada célula que sostiene cada letra. La nueva línea indica que 1, 2 y 3 están en la fila siguiente, cada uno en su propia celda. Si una celda necesita una coma, puede colocarla entre comillas. En mi ejemplo, "¡Hola, mundo!" existiría en la 3ra fila, 1ra celda. Para una definición más formal: http://www.csvreader.com/csv_format.php

+0

¡Muchas gracias! Marqué el enlace, estoy seguro de que será útil en el futuro. – Corey

3

La solución incorporada es el módulo csv de python. Puede crear un csv.writer y usarlo para agregar filas a un archivo .csv, que se puede abrir en Excel.

+0

¡Gracias! Está funcionando bien y será una herramienta útil para producir visuales útiles. – Corey

7

Al igual que @senderle dijo, el uso csv.writer

a = [[1,2,3],[4,5,6],[7,8,9]] 
ar = array(a) 

import csv 

fl = open('filename.csv', 'w') 

writer = csv.writer(fl) 
writer.writerow(['label1', 'label2', 'label3']) #if needed 
for values in ar: 
    writer.writerow(values) 

fl.close()  
+0

muchas gracias, ¡esto será extremadamente útil! Inicialmente había buscado en los foros una forma de hacerlo con xlwt, pero esto funcionará perfectamente. ¡gracias de nuevo! – Corey

+0

Hago lo mismo con una matriz, así que si tiene alguna duda, solo pregunte;) – pavid

Cuestiones relacionadas