使用分隔符将2d数组写入csv文件

Jef*_*yLR 10 python arrays

正如标题所说,我想使用python将二维数组写入带有分隔符','的csv文件.我的数组看起来像这样(ndarray):

a= [[1,2,3,4],[5,6,7,8]]
Run Code Online (Sandbox Code Playgroud)

我希望输出看起来像:

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)
Run Code Online (Sandbox Code Playgroud)

我该如何做到这一点?

我已经尝试过这个解决方案,但由于我在''行'中放错了's'而导致我的数组写入单行而不是多行,因此无效.

voi*_*oid 17

使用csv模块import csv也可以记下您可能需要的writerow()或者writerows().

你可能会问有什么不同?

writerow需要一个可迭代的单元格来编写:

writerow([1,2,2])
->
1,2,2
Run Code Online (Sandbox Code Playgroud)

writerows使用可迭代的单元格迭代来编写:

writerows([[1,2,3],
           [4,5,6],
           [6,7,8]])
->
1,2,3
4,5,6
6,7,8
Run Code Online (Sandbox Code Playgroud)

哪个可以作为变量给出.喜欢

a = [[1,2,3],[4,5,6],[6,7,8]]
writerows(a)
Run Code Online (Sandbox Code Playgroud)

结论写作者获取一维数据(一行),写作者获取二维数据(多行).

你的计划:

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)
Run Code Online (Sandbox Code Playgroud)

注意open()这里有两个参数要写入的文件和模式.

你可能会问什么模式?

它指定了如何打开文件.在我的情况下w+意味着打开文件,my_file.csv如果它存在,如果它不存在然后罚款创建一个新文件并写入.

有几种模式可供选择.注意:w+每次使用时都会覆盖.那将是文件中的旧数据将被覆盖,因此如果您只想附加使用a.有关模式的更多详细信息,请查看此内容.文件模式

  • 非常感谢提及"行"和"行".它解决了我的问题. (2认同)

Rud*_*hal 5

假设a是一个numpy数组,

import numpy
a= [[1,2,3,4],[5,6,7,8]]
numpy.savetxt('output.csv',a,delimiter=",")
Run Code Online (Sandbox Code Playgroud)