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

これは、同じcaculationを2回回避するために行いました。リスト 'a'が大きくなると、もう一度初期化する必要があります(外部ループの繰り返し後)。上記のやり方でcsvファイルに書き込まれたリスト(前にもう一度初期化される前に)しかし、私はそうすることはできません...... ......助けてください。csvのループ内への書き込み

答えて

11

このような操作をしますか?行/列ヘッダーと

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) 

又はさらには:

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) 

後者戻るファイル下記(Iは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おかげ!行と列の見出しは来ていません.. –

+0

ありがとうたくさん!!! ......それは今... –

+2

@ tanmay:それを聞いて、そして良いStackOverflowであなたを持って良い。あなたは、この答えがあなたの問題を解決したことを、その隣にあるチェックマークをクリックすることによって示すことができます。あなたの評判は今16に達しているので、チェックマークの上にある上向きの三角形をあなたの感謝の象徴としてクリックすることで、有益な回答にアップフォートを与えることもできます。 –

関連する問題