1

我正在尝试根据计数在 for 循环中动态创建变量。

我正在使用 openpyxl 模块来迭代工作表。

value = ~sheet name after using a loop to iterate over sheet names~
wb = (path_to_workbook, use_iterators = True)
ws = wb.get_sheet_by_name(name = value)

for a,b,c,d in ws.iter_rows():
    print a.internal_value

问题是,for 循环中的变量数量取决于每张工作表中有多少活动列会随着工作表的变化而变化。它会吐出错误:

“要解压的值太多”

如果我没有正确数量的变量来解包。

我可以使用以下方法获取列数:

ws.get_highest_column()

所以,不知何故我需要做一个:

for ~dynamically create variables by count of columns~ in ws.iter_rows():
    print variable1.internal_value

我看到一些使用 exec 的帖子,但我没有任何使用它的经验,而且我似乎总是读到它如何让你陷入困境。

4

2 回答 2

5

无需创建动态数量的参数。改用一个;它被分配了整行,然后您可以使用索引来访问项目:

for row in ws.iter_rows():
    # row is now a tuple
    first_value = row[0]
于 2013-10-04T22:33:22.147 回答
1
for ~dynamically create variables by count of columns~ in ws.iter_rows():
    print variable1.internal_value

您可以简单地遍历所有行,而无需解包每一行。

for row in ws.iter_rows():
    # row is a tuple
    print row[0].internal_value
于 2013-10-04T22:34:32.310 回答