我从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
。
出于我的目的,可以丢弃数据,这可以解决问题。
摘要
如果您确定您的代码正常,请查看您的源文件以查找任何潜在问题。