【问题标题】:How to write a tuple of tuples to a CSV file using Python如何使用 Python 将元组的元组写入 CSV 文件
【发布时间】:2011-12-31 10:25:01
【问题描述】:

我有一个元组的元组

import csv
A = (('Max', 3 ,' M'),('bob',5,'M'),('jane',6,'F'))
result = open("newfile.csv",'wb')
writer = csv.writer(result, dialect = 'excel')
writer.writerow(A)
result.close

这将写入一个 CSV 文件,其中包含 A[0]、A[1] 和 A[2] 的行。 我想要的是一个有姓名、年龄和性别的行,它有相应的值。

【问题讨论】:

  • 您想要一行包含 3 列,每列代表姓名、年龄和性别,而您要获得包含全部三列的一列?

标签: python csv tuples


【解决方案1】:

一次写入所有行:

writer.writerows(A)

而不是

writer.writerow(A)

文件 newfile.csv 现在看起来像这样:

Max,3, M
bob,5,M
jane,6,F

另外,在最后一行添加(),这是一个函数调用:result.close()

如果您使用的是 Python 2.6 或更高版本,则可以使用此表单:

import csv
A = (('Max', 3, 'M'),('bob', 5, 'M'),('jane', 6, 'F'))
with open('newfile.csv', 'wb') as result:
    writer = csv.writer(result, dialect='excel')
    writer.writerows(A)

【讨论】:

  • 等价于for row in A: writer.writerow(A)。但是由于您要预先构建A,您不妨使用writerows
  • +1 我像 csv.writer(f).writerows([x for x in a]) 那样做,我要去 rtfm :-)
【解决方案2】:

不确定我是否完全理解你,但我认为这会有所帮助:

    print >>f, "\n".join([",".join(x) for x in A]);

【讨论】:

  • csv 中获利,不要用这种结构重新发明轮子(想象一个字段为“Max,Happy”会破坏你的 CSV 文件)
  • csv是否预装了python?
  • CSV 从 Python 2.3 开始内置
猜你喜欢
  • 1970-01-01
  • 2011-07-28
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多