我有一个文件,我目前保存到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这样的东西? 我怎么会改变我的代码?
答案 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