4

对 python 来说相对较新,所以请原谅新手的问题,但谷歌目前没有帮助。

我有 100 个非常大的 xlsx 文件,我需要从中提取第一行(特别是单元格 A2)。我发现了一个名为 openpyxl 的工具的 gem ,它将遍历我的数据文件,而不会将所有内容加载到内存中。它使用生成器来获取每次调用的相关行

我无法得到的是如何在循环之外初始化生成器。现在我的代码是:

from openpyxl import load_workbook
wb = load_workbook(filename = "merged01.xlsx", use_iterators= True)
sheetName = wb.get_sheet_names()
ws = wb.get_sheet_by_name(name = sheetName[0])
row = ws.iter_rows() #row is a generator
for cell in row:
    break
print (cell[1].internal_value) # A2

但是必须有更好的方法来做到这一点,例如:

...
row = ws.iter_rows() #row is a generator
cell = row.first # line I'm trying to KISS
print (cell[1].internal_value) # A2
4

2 回答 2

9
cell = next(row)

next函数从任何迭代器中检索下一个值。

于 2013-09-01T20:23:24.677 回答
5

你正在寻找next().

cell = next(row)
于 2013-09-01T20:23:41.900 回答