正如标题所说,我想使用 python 将二维数组写入带有分隔符“,”的 csv 文件。我的数组看起来像这样 (ndarray):
a= [[1,2,3,4],[5,6,7,8]]
我希望输出看起来像:
1,2,3,4
5,6,7,8
with open('./data/positive.csv','wb') as myfile:
wr = csv.writer(myfile) #, quoting=csv.QUOTE_ALL)
wr.writerow(a)
我该如何实现?
我已经尝试过该解决方案,但它不起作用,因为我在“行”中错放了一个“s”,它使我的数组写入单行而不是多行。
通过 import csv
使用 csv
模块也请注意您可能需要 writerow()
或 writerows()
.
您可能会问有什么区别?
writerow 需要一个可迭代的单元格来写入:
writerow([1,2,2])
->
1,2,2
writerows 需要一个可迭代的单元格来写入:
writerows([[1,2,3],
[4,5,6],
[6,7,8]])
->
1,2,3
4,5,6
6,7,8
当然可以作为变量给出。喜欢
a = [[1,2,3],[4,5,6],[6,7,8]]
writerows(a)
结论writerow取一维数据(一行),writerows取二维数据(多行)。
你的计划:
import csv
a = [[1,2,3,4],[5,6,7,8]]
with open("new_file.csv","w+") as my_csv:
csvWriter = csv.writer(my_csv,delimiter=',')
csvWriter.writerows(a)
注意 open()
这里有两个参数,即要写入的文件和模式。
您可能会问什么是模式?
它指定文件应该如何打开。在我的例子中,w+
表示打开文件 my_file.csv
如果它不存在则创建一个新文件并写入。
有多种模式,选择一种。 注意:w+
会在您每次使用时覆盖。那是文件中的旧数据将被覆盖,因此如果您只想追加,请使用 a
。看看这个关于模式的更多细节。 File modes