【问题标题】:csv writing within loopcsv在循环内写入
【发布时间】:2011-11-10 10:49:10
【问题描述】:
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=[]

我这样做是为了避免两次相同的计算,随着列表“a”会变大,我必须再次初始化它(在外循环的一次迭代之后)。所以,我想要列表(在再次初始化之前)以上述方式写入csv文件,但我无法这样做......请帮助。

【问题讨论】:

    标签: python csv


    【解决方案1】:

    你想做这样的事情吗?

    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)
    

    后者返回如下文件(我已经把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
    

    【讨论】:

    • @tanmay:很高兴听到它,很高兴有你加入 StackOverflow。您可以通过单击旁边的复选标记来表明此答案解决了您的问题。由于您的声誉现已达到 16,您还可以通过单击复选标记上方的向上三角形来为有用的答案投票以表示感谢。
    • @Raz - 我也是,只是不确定 OP 没有使用 Python 3.x
    猜你喜欢
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 2013-10-29
    • 1970-01-01
    • 2021-10-18
    • 2021-01-22
    相关资源
    最近更新 更多