我试图了解这是否是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 loop
和out of loop
两次以及我的电子表格中的所有数据。换句话说,这个while循环运行两次并停止。我在打印rasie SystemExit
之后扔了一个out of loop
,并且脚本停在了我将其除外的位置。
另一个想法是,最终的用途是在python中创建一个列表,方法是将excel中的每一行附加到一个列表(我在这里称之为数据),我注意到的是我在列表中没有重复,即使我看到了打印语句运行两次。
感谢先进的想法。
答案 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 = []
开头,所以每次运行时都清除了我的列表,所以我没有得到重复。
我知道这很令人困惑,但希望对以某种方式重现这一点的人有所帮助。