0

每个身体。我有一些数据如下:

数据 = [ ['234','123','145','134','156'],['12','67895','12345','1234'] ]

我想以“aid,pid”为列标题的方式将这些数据写入 csv 文件。每个子列表的第一个元素是“aid”列,其余的是“pid”。现在我想用制表符编写 pid,如下所示。

aid,pid

234,123 145 134 156

12,67895 12345 1234

这是我的示例代码

import csv

data =[ ['234','123','145','134','156'],['12','67895','12345','1234'] ]
valid_result = open('./result/valid_result.csv','wb')
writer = csv.writer(valid_result,delimiter = ',',dialect = 'excel-tab')
header = ['aid','pid']
writer.writerow(header)

for record in data:
    writer.writerow(record)

python有什么解决方案吗?

4

2 回答 2

1

如果我理解正确,您需要将每个列表分成两列:

for record in data:
    new_rec = [record[0], " ".join(record[1:])]

这样的事情应该做,并写 new_rec 而不是记录。

于 2013-05-09T10:55:26.197 回答
0

用这个替换你的 for 循环:

for record in data:
    writer.writerow([record[0],'\t'.join(record[1:])])

您还必须通过 .ftweward关闭valid_result.close()文件。

以下使用withand openwhich 为您打开和关闭文件:

import csv
data =[ ['234','123','145','134','156'],['12','67895','12345','1234'] ]
with open('valid_result.csv','wb') as valid_result:
    writer = csv.writer(valid_result,delimiter = ',',dialect = 'excel-tab')
    header = ['aid','pid']
    writer.writerow(header)
    for record in data:
        writer.writerow([record[0],'\t'.join(record[1:])])

两者都产生:

aid,pid
234,123 145 134 156
12,67895    12345   1234
于 2013-05-09T10:55:18.107 回答