2011-11-10 20 views
6
import csv 
a=[] 
with open('large.csv','w') as f1: 
    writer=csv.writer(f1, delimiter='\t',lineterminator='\n',) 

    for i in range(1000000): 
     for j in range(i+1): 
      a.append(i+j*0.2) 
      #print i,j,a 
     #want to write into same csv file??? 
     '''like    
       0  1  2......999999 
      0 0.0 
      1 1.0 1.2 
      2 2.0 2.2 2.4 
      . ..... 
      . ..... 
      999999 
     ''' 
     a=[] 

he hecho esto para evitar misma Caculation dos veces y como la lista 'A' crecerá grande que tengo para inicializar de nuevo (después de una iteración del bucle externo) .Así, quiero que el lista (antes de volver a inicializar) escrita en el archivo csv de la manera anterior pero no puedo hacerlo ...... por favor ayuda.csv escrito dentro del bucle

Respuesta

11

¿Desea hacer algo como esto?

import csv 
with open('large.csv','w') as f1: 
    writer=csv.writer(f1, delimiter='\t',lineterminator='\n',) 
    for i in range(1000000): 
     row = [i + j*0.2 for j in range(i+1)] 
     writer.writerow(row) 

o también con los encabezados de fila/columna:

import csv 
with open('large.csv','w') as f1: 
    writer=csv.writer(f1, delimiter='\t',lineterminator='\n',) 
    writer.writerow([''] + range(1000000)) 
    for i in range(1000000): 
     row = [i] + [i + j*0.2 for j in range(i+1)] 
     writer.writerow(row) 

éste vuelve el siguiente archivo (que han reemplazado a 1.000.000 con 10):

 0  1  2  3  4  5  6  7  8  9 
0  0.0 
1  1.0  1.2 
2  2.0  2.2  2.4 
3  3.0  3.2  3.4  3.6 
4  4.0  4.2  4.4  4.6  4.8 
5  5.0  5.2  5.4  5.6  5.8  6.0 
6  6.0  6.2  6.4  6.6  6.8  7.0  7.2 
7  7.0  7.2  7.4  7.6  7.8  8.0  8.2  8.4 
8  8.0  8.2  8.4  8.6  8.8  9.0  9.2  9.4  9.6 
9  9.0  9.2  9.4  9.6  9.8  10.0 10.2 10.4 10.6 10.8 
+0

del ya gracias !!! pero los encabezados de las filas y las columnas no vienen ... –

+0

muchas gracias !!! ... ahora es ... –

+2

@tanmay: Me alegra oírlo y es bueno tenerte en StackOverflow. Puede mostrar que esta respuesta resolvió su problema haciendo clic en la marca de verificación al lado. Dado que su reputación ahora ha alcanzado los 16, también puede dar votaciones ascendentes a respuestas útiles haciendo clic en el triángulo hacia arriba sobre la marca de verificación como muestra de su agradecimiento. –

Cuestiones relacionadas