写入CSV标题会导致下面的numpy数组数据丢失
我正在尝试把数据导出到一个csv文件里。这个文件应该包含一个标题(来自数据堆栈)和重新整理过的数组(也是来自数据堆栈)。在数据堆栈中的一行数据长度和数据集是一样的。下面的代码可以运行,但它把数据堆栈第一行的一部分给去掉了。有没有人知道这可能是什么原因呢?
s = ','.join(itertools.chain(dataset)) + '\n'
newfile = 'export.csv'
f = open(newfile,'w')
f.write(s)
numpy.savetxt(newfile, (numpy.transpose(datastack)), delimiter=', ')
f.close()
1 个回答
6
你打开了一个名为 'export.csv' 的文件两次,第一次是通过 open()
函数,第二次是通过 numpy.savetxt()
函数。这样就出现了两个文件句柄在争抢同一个文件名。如果你把文件句柄而不是文件名传给 numpy.savetxt()
,就可以避免这种竞争情况:
s = ','.join(itertools.chain(dataset)) + '\n'
newfile = 'export.csv'
f = open(newfile,'w')
f.write(s)
numpy.savetxt(f, (numpy.transpose(datastack)), delimiter=', ')
f.close()