如何使用 csv_write 逐列写入和保存值(数组)

使用 open('kp_insitu.csv', 'w', newline='') 作为我的文件:


     for i in range(5):

        Arden # it is array of 100 elements

        wr = csv.writer(myfile,delimiter=',')

        for word in Arden:

            wr.writerow([word]) 

这些值(5 个数组值)在 csv 文件中连续打印,而不是逐列打印。


慕田峪7331174
浏览 326回答 2
2回答

largeQ

新鲜的答案。我不得不猜测你的“Arden”变量是什么样的。它可能是 100 个值的一维序列(列表或元组)。您的第一个问题是您使用 for 循环(第 4 行)将 Arden 分开,然后将每个值写入其自己的行,并将每个值包装在列表中(第 5 行)。所以,目前,您在 CSV 文件中得到一列值,对吗?您的第二个问题不是必须解决的,但您可能应该解决。创建一个 CSV Writer 对象并使用它来处理整个文件,而不是为每一行数据创建一个 CSV Writer 对象(第 3 行)。工作代码,基于我对您要执行的操作的最佳猜测:import csvfilename = "test.csv"f = open(filename, "w")wr = csv.writer(f, delimiter=",")for i in range(5):    data = list(range(10*i, 10*i+9)) # one row of mock data    wr.writerow(data)f.close()该文件test.csv如下所示:0,1,2,3,4,5,6,7,810,11,12,13,14,15,16,17,1820,21,22,23,24,25,26,27,2830,31,32,33,34,35,36,37,3840,41,42,43,44,45,46,47,48

沧海一幻觉

您没有显示太多代码,所以我必须进行一些猜测。您似乎正在创建 CSV 写入器对象五次。那是你要的吗?我认为您正在重复覆盖您的文件,并且您应该在进入循环之前创建它。您还隐藏了创建 Arden 的所有细节。您是否要附加到不断增长的对象的末尾?如果您想要五个单独的行,则需要单独生成每一行。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python