脚本和函数循环数据两次

时间:2014-07-02 15:31:35

标签: loops python-2.7 xlrd

我试图了解这是否是xlrd mod中的正常行为,或者我是否滥用了某些内容。这是代码:

import xlrd
workbook = xlrd.open_workbook('exceptions v2.xlsm')

worksheet = workbook.sheet_by_name('Sheet1')
num_rows = worksheet.nrows - 1
curr_row = -1
data = []
print 'begin loop'
while curr_row < num_rows:
    curr_row += 1
    row = worksheet.row(curr_row)
    print row
    data.append(row)

print 'out of loop'

当我运行脚本时,它会打印begin loopout of loop两次以及我的电子表格中的所有数据。换句话说,这个while循环运行两次并停止。我在打印rasie SystemExit之后扔了一个out of loop,并且脚本停在了我将其除外的位置。

另一个想法是,最终的用途是在python中创建一个列表,方法是将excel中的每一行附加到一个列表(我在这里称之为数据),我注意到的是我在列表中没有重复,即使我看到了打印语句运行两次。

感谢先进的想法。

1 个答案:

答案 0 :(得分:0)

我找到了答案。问题出在我的import语句中。

我有两个文件import_kip.py和initialize.py。我在initialize.py的底部测试上面的xlrd脚本,然后将initialize.py导入import_kip.py,然后将import_kip.py导入到我的initialize.py文件中。基本上,脚本由import_kip.py和initialize.py运行。并且因为脚本以data = []开头,所以每次运行时都清除了我的列表,所以我没有得到重复。

我知道这很令人困惑,但希望对以某种方式重现这一点的人有所帮助。