2011-11-10 11 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=[] 

ho fatto questo per evitare stesso caculation due volte e come la lista 'A' crescerà grande devo inizializzare di nuovo (dopo un'iterazione del ciclo esterno) .Così, voglio il elenca (prima di essere nuovamente inizializzato) scritto nel file csv nel modo sopra descritto ma non sono in grado di farlo ...... per favore aiutatemi.csv per iscritto entro ciclo

risposta

11

Vuoi fare qualcosa di simile?

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 anche con le intestazioni di riga/colonna:

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) 

Quest'ultimo restituisce il seguente file (ho sostituito con 1000000 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

ya grazie !!! ma le intestazioni di righe e colonne non arrivano .. –

+0

grazie mille !!! ...... è ora ... –

+2

@tanmay: Bello sentirlo, e bello averti su StackOverflow. Puoi dimostrare che questa risposta ha risolto il tuo problema facendo clic sul segno di spunta accanto ad esso. Poiché la tua reputazione ha ormai raggiunto i 16, puoi anche dare voti positivi a risposte utili facendo clic sul triangolo verso l'alto sopra il segno di spunta come segno del tuo apprezzamento. –