我正在从 excel 表中提取大量数据,以写入另一个 excel 文件。脚本看起来像这样:
def foo(file):
open file
write specific cells to new workbook in memory based on some logic
foo(file001)
foo(file002)
.
.
.
foo(file110)
save output file
foo() 的功能不是问题,它运行良好。但是,该脚本在加载文件 77 后抛出了一个UnboundLocalError: local variable referenced before assignment
错误(这将是该脚本中第 67 次调用该函数)。
excel 文件具有相同的布局,并且被提取的数据仅因值而异。除了任何脚本错误(我几乎可以肯定已经避免),是否有任何逻辑或溢出原因导致这样的错误只有在重复调用相同的函数后才会出现?
我目前正在重新运行脚本以查看错误是否重复,但需要几个小时才能到达同一点。如果结果不同,将更新。
在 WinXP 上使用 Python3.3 和 openpyxl-1.6.2 和 .xlsx 文件。(对我自己来说:脚本 v1.6.00)
编辑
再次查看源excel文件,发现由于导出原始数据出现问题,引发错误的文件被人为缩短。(备注显示数据采集计算机在写入数据时崩溃。)
foo() 逻辑的一部分包括存储特定单元格的行号以供以后操作。但是,在这个缩短的文件中,该行不存在,因此UnboundLocalError
在稍后调用存储的行号时创建了一个。
出于我的目的,可以丢弃数据,从而解决问题。
概括
如果您确定您的代码没问题,请查看您的源文件是否存在任何潜在问题。