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

Zrobiłem to, aby uniknąć tego samego caculation dwukrotnie i jako listę „a” będzie rosła duża muszę zainicjować go ponownie (po jednej iteracji pętli zewnętrznej) .Tak, chcę lista (zanim zostanie zainicjalizowana ponownie) zapisana w pliku csv w powyższy sposób, ale nie jestem w stanie tego zrobić ...... proszę o pomoc.CSV piśmie w pętli

Odpowiedz

11

Chcesz coś takiego zrobić?

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) 

lub także z nagłówków wiersz/kolumna:

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) 

Ten ostatni powraca Następujący plik (I otrzymuje 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 dzięki !!! ale nagłówki wierszy i kolumn nie nadchodzą ... –

+0

wielkie dzięki! ...... to jest teraz ... –

+2

@tanmay: Wspaniale to słyszeć i dobrze mieć cię na StackOverflow. Możesz pokazać, że ta odpowiedź rozwiązała Twój problem, klikając zaznaczony obok niego symbol. Ponieważ Twoja reputacja osiągnęła już 16, możesz również oddać upvotes do pomocnych odpowiedzi, klikając trójkąt w górę nad znacznikiem wyboru jako znak uznania. –