将默认dict中的每个键写入唯一的csv文件

时间:2015-12-10 22:22:24

标签: python-3.x export-to-csv defaultdict

我有一个defaultdict,它有ID号作为坐标列表的键,我想把它写到一个文件夹,每个键都有一个唯一的csv文件。

到目前为止,这就是我所拥有的:

wb=openpyxl.load_workbook('Simplified_Coordinates.xlsx')
sheet=wb.get_sheet_by_name('Sheet1.csv')

from collections import defaultdict

CoordDict = defaultdict(list)
for i in range (1,24134,1):
   coordinate_list=[(sheet.cell(row=i,column=1).value,   sheet.cell(row=i,column=2).value)]
   for oID, yx in coordinate_list:
       CoordDict[oID].append(yx)

import csv

w=csv.writer(open('outputcoords.csv','w'))
for oID, yx in CoordDict.items():
   w.writerow([oID,yx])

但是这会将defaultdict中的所有列表写入1 csv,每个键都有一个单独的行。有关将它们写入自己的csv文件的最佳方法的任何建议吗?我需要另一个声明吗?如果这是一个显而易见的问题,我对python很新,抱歉!

1 个答案:

答案 0 :(得分:0)

如果您希望将每个坐标列表写入单独的文件,则可以将csv文件写入for循环:

wb=openpyxl.load_workbook('Simplified_Coordinates.xlsx')
sheet=wb.get_sheet_by_name('Sheet1.csv')

from collections import defaultdict
import csv

for i in range (1,24134,1):
    coordinate_list=[(sheet.cell(row=i,column=1).value,   sheet.cell(row=i,column=2).value)]

    w=csv.writer(open('outputcoords%d.csv' % i,'w'))
    or oID, yx in coordinate_list:
       w.writerow([oID,yx])