簡體   English   中英

在python中以特殊格式寫入csv文件

[英]write csv file with special format in python

每個人。 我有一些類似以下的數據:

數據= [['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中有什么解決方案嗎?

如果我理解正確,則需要將每個列表分為兩列:

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

應該這樣做,然后編寫new_rec而不是record。

用以下代碼替換您的for循環:

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

您還必須通過valid_result.close() 關閉文件。

以下利用withopen來為您打開和關閉文件:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM