我正在开发一个应用程序,该应用程序可以使用Openpyxl读取大的.xlsx(超过20000行),并且可以使用此数据进行一些基本计算。我尝试在下面的示例中读取20000行。当我在Windows的命令promt中运行此代码时,输出很好,但是当我在linux终端或PyCharm终端中运行它时,将10000更改为None后,输出。
我已经尝试将load_workbook read_only参数更改为True,但这完全破坏了应用程序的性能
from openpyxl import *
wb = load_workbook(filename="wind_data.xlsx", read_only=False)
ws = wb.active
output_data = [ws.cell(row=i, column=2).value for i in range(2, 20002)]
for i in range(0, len(output_data)):
print(str(i+1) + " : " + str(output_data[i]))
我期望这段代码的输出以以下结尾:
19998 : 6
19999 : 6
20000 : 6
但是我得到了:
19998 : None
19999 : None
20000 : None
答案 0 :(得分:0)
我建议对真正的大集合使用生成器理解。
output_data = (ws.cell(row=i, column=2).value for i in range(2, 20002))
这可能对您有帮助。我在Linux上对其进行了测试,在超过2万行的excel上运行良好。 其次,当您要遍历此类集合并且还具有索引时,请使用以下函数:
枚举(集合)
赞:
for i, val in enumerate(output_data):
print('{} : {}'.format(i+1, val)