Python 3.x 类型错误:';发电机&x27;对象在python中不可下标
我是python新手,正在努力学习 我正在使用下面的代码阅读excel电子表格,但出现以下错误。 有人能帮我解决这个问题吗?或者代码有什么问题Python 3.x 类型错误:';发电机&x27;对象在python中不可下标,python-3.x,Python 3.x,我是python新手,正在努力学习 我正在使用下面的代码阅读excel电子表格,但出现以下错误。 有人能帮我解决这个问题吗?或者代码有什么问题 import openpyxl import os if not os.path.isfile('C:\Python\Python36\EBC_N_Bhatt_Anilkumar _Team - 06132018.xlsx'): raise Exception('File does not exist.') wb = openpyxl.
import openpyxl
import os
if not os.path.isfile('C:\Python\Python36\EBC_N_Bhatt_Anilkumar _Team - 06132018.xlsx'):
raise Exception('File does not exist.')
wb = openpyxl.load_workbook('C:\Python\Python36\EBC_N_Bhatt_Anilkumar _Team - 06132018.xlsx')
sheet_ind = 0
sheet_names = wb.get_sheet_names()
sheet = wb.get_sheet_by_name(sheet_names[sheet_ind])
r = sheet.max_row
c = sheet.max_column
start_row = 0
for i in range(start_row, r):
cur_row = list(sheet.rows[i])
print(cur_row)
“C:\Users\KVenkataraja\PycharmProjects\Python
教程\venv\Scripts\python.exe“
“C:/Users/KVenkataraja/pycharm项目/Python教程/readexel.py”
C:/Users/KVenkataraja/PycharmProjects/Python教程/readexel.py:9:
弃用警告:调用弃用函数get\u sheet\u names(使用
wb.表名)。工作表名称=wb.get\u工作表名称()
C:/Users/KVenkataraja/pycharm项目/Python教程/readexel.py:10:
弃用警告:调用弃用函数get\u sheet\u by\u name(使用
wb[图纸名称])。sheet=wb。按名称获取工作表(工作表名称[工作表索引])
回溯(最近一次调用上次):文件
“C:/Users/KVenkataraja/pycharm项目/Python教程/readexel.py”,
第18行,在
cur_row=list(sheet.rows[i])
TypeError:“生成器”对象不可下标
进程已完成,退出代码为1
sheet.rows
可能(如错误消息所示)是一个行生成器,这就是它不可子脚本化的原因。您应该迭代生成器工作表.rows
您可以,并且应该像下面的代码片段中那样迭代它:
for row in sheet.rows:
cur_row = list(row)
print(cur_row)
或者如果您也需要索引,则使用枚举
for index, row in enumerate(sheet.rows):
cur_row = list(row)
print(cur_row)
# print(index)
sheet.rows
是一个生成器,您不能像那样请求i
th行。你的意思是列表(sheet.rows)[i]
?为什么?没有explanation@AzatIbrakov是的,我只是在编辑我的答案:)觉得需要一些解释。