Python 如何使用csv_write逐列写入和保存值(数组)
以open('kp_insitu.csv','w',newline=''作为myfile:Python 如何使用csv_write逐列写入和保存值(数组),python,python-3.x,csv,Python,Python 3.x,Csv,以open('kp_insitu.csv','w',newline=''作为myfile: 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文件中连续打印,而不是逐列打印 您
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文件中连续打印,而不是逐列打印 您没有显示太多的代码,因此我不得不进行一些猜测 看起来您正在分别创建CSV writer对象五次。这就是你想要的吗?我认为您正在重复覆盖您的文件,您应该在进入循环之前创建它 您还可以隐藏创建雅顿的所有细节。是否附加到正在增长的对象的末尾?如果您想要五个独立的行,您需要自己生成每一行。新鲜答案 我不得不猜测你的“Arden”变量是什么样子。它可以是100个值的一维序列(列表或元组) 第一个问题是,您正在使用for循环(第4行)将Arden分解,然后将每个值作为自己的行写入,并将每个值包装到列表中(第5行)。那么,目前,您在CSV文件中获得了一列值,对吗 您的第二个问题不是必须解决的,但您可能应该解决。创建一个CSV Writer对象并使用它处理整个文件,而不是为每行数据创建一个CSV Writer对象(第3行) 工作代码,基于我对您尝试执行的操作的最佳猜测:
import csv
filename = "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,8
10,11,12,13,14,15,16,17,18
20,21,22,23,24,25,26,27,28
30,31,32,33,34,35,36,37,38
40,41,42,43,44,45,46,47,48
正如我所提到的,Arden是100值数组,它是经过一些计算后生成的。从一个输入文件中,我将生成5个Arden数组,我需要逐列写入。因此,您将生成5个不同的数组,每个数组都是一维的,1 x 100?您是否按照我的建议尝试将代码的第三行移到顶部?Arden每次初始化都是空的吗?我每次都会得到一组不同的Arden值。当我在csv文件中写入时,它会连续保存所有5个数组值(第一个数组值最多占用100行,第二个数组值从第101行开始(我希望作为下一列))。我怀疑您可能正在阻止CSV写入程序发出换行符,因为您创建了五个不同的CSV写入对象,并且每个对象只能写入一行。您是否尝试按照我的建议将读取
wr=csv.writer(myfile,delimiter=',')
的行移动到第1行?不,John,它不起作用。还有其他方法吗(我正在寻找一种创建数据框列的方法)