用python保存列表

用python保存列表,python,export,export-to-csv,Python,Export,Export To Csv,我正在尝试将输出导出到列表。这是我的密码: import csv import numpy as np row_list = np.arange(0,5) for row in row_list: a = row + 3 b = row + 4 c = row + 5 result = [a, b, c] csvfile = "/home/Desktop/test" with open(csvfile, "w") as output:

我正在尝试将输出导出到列表。这是我的密码:

import csv
import numpy as np

row_list = np.arange(0,5)
for row in row_list:
    a = row + 3
    b = row + 4
    c = row + 5


    result = [a, b, c]
    csvfile = "/home/Desktop/test"

    with open(csvfile, "w") as output:
        writer = csv.writer(output, lineterminator='\t')
        for val in result:
            writer.writerow([val])
我运行代码,在我的桌面上创建了一个测试文件(这正是我想要的),但是文件中的数据是错误的。 输出为:
789

但这不是我想要的。脚本正在循环中运行,但它仅导出最后一行。关于如何使其以以下方式导出文件中的数据的任何想法:

3 4 5
4 5 6
5 6 7
6 7 8
7 8 9
谢谢

编辑:如果我想把这个剧本交给我的教授怎么办。她的笔记本电脑上不存在目录
/home/paula/Desktop/test
。我试图编写
csvfile=“~/Desktop/test”
,但它给了我一个错误。有什么想法吗

注意:我使用的是Ubuntu12.04。

你每次通过循环都要打开()文件,使用
'w'
((over)write)作为文件模式,而不是
'a'
(append)。有关读取和写入文件的详细信息,请参阅

或者,在循环外部打开文件:

csvfile = "/home/paula/Desktop/test"
with open(csvfile, 'w') as f:
    writer = csv.writer(output, lineterminator='\t')
    for row in rowlist:
        # do the output here

每次以
w
模式打开
csvfile
时,都会将其截断为0字节。相反,在
a
模式下打开新文件,该模式将向其添加数据。

当您在
w
模式下打开文件时,它会删除任何现有内容。即使没有,你也不会在行尾写换行符

打开文件一次,然后使用更合理的“行”概念,即与数据的实际行相对应的概念:

with open(csvfile, "w") as output:
    writer = csv.writer(output, delimiter='\t')

    for row_num in row_list:
        a = row_num + 3
        b = row_num + 4
        c = row_num + 5

        row = [a, b, c]
        writer.writerow(row)