Skip to main content
 首页 » 编程设计

python之在循环外使用生成器

2025年05月04日11kerrycode

Python 相对较新,所以请原谅新手问题,但此时谷歌没有帮助。

我有 100 个非常大的 xlsx 文件,我需要从中提取第一行(特别是单元格 A2)。我发现了一个名为 openpyxl which will iterate through my data files 的工具。无需将所有内容加载到内存中。它使用生成器在每次调用时获取相关行

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

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 

请您参考如下方法:

cell = next(row) 

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