用于Excel文件的DictReader

时间:2014-09-17 15:42:09

标签: python excel csv dictionary

我有一个文件,我目前保存到csv,但它最初是一个Excel文件(Excel 2010)。

其内容属于这种类型:

Name;Category;Address
McFood;Fast Food;Street 1
BurgerEmperor;Fast Food;Way 1
BlueFrenchHorn;French;Street 12
PetesPizza;Italian;whatever
SubZero;Fast Food;Highway 6

我将其保存为csv以便能够解析它。目前我使用DictReader(here is the code and a corresponding question

像xlrd这样的Excel模块是否有像DictReader这样的东西? 我怎么会改变我的代码?

1 个答案:

答案 0 :(得分:3)

将此作为答案,可以帮助那些寻找类似解决方案的人。 github(不是我的)有一个包含潜在解决方案的要点。可能需要进行一些调整以适用于您的特定情况:Github Gist

对于那些不想点击的人,这里是代码:

try:
    import xlrd
    import mmap

    def XLSDictReader(f, sheet_index=0):
        data    = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
        book    = xlrd.open_workbook(file_contents=data)
        sheet   = book.sheet_by_index(sheet_index)

        def item(i, j):
            return (sheet.cell_value(0,j), sheet.cell_value(i,j))

        return ( dict(item(i,j) for j in range(sheet.ncols)) \
                     for i in range(1, sheet.nrows) )

except ImportError:
    XLSDictReader = None