【问题标题】:Writing each key in a default dict to a unique csv file将默认字典中的每个键写入唯一的 csv 文件
【发布时间】:2015-12-10 22:22:24
【问题描述】:

我有一个默认字典,其中 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 文件的最佳方式的任何建议?我需要另一个 for 声明吗?如果这是一个明显的问题,我对python很抱歉!

【问题讨论】:

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


    【解决方案1】:

    如果您希望将每个坐标列表写入单独的文件,您可以将 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])
    

    【讨论】:

      猜你喜欢
      • 2012-01-30
      • 1970-01-01
      • 2016-12-10
      • 2019-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      相关资源
      最近更新 更多