我正在尝试读取Excel工作表中列的值列表。但是,列的长度每次都不同,所以我不知道列表的长度。如何让python读取列中的所有值,并在使用xlrd将单元格清空时停止?
答案 0 :(得分:3)
for i in range(worksheet.nrows):
将遍历工作表中的所有行
如果您对第0列感兴趣,例如
c0 = [worksheet.row_values(i)[0] for i in range(worksheet.nrows) if worksheet.row_values(i)[0]]
或甚至更好地使这成为一个发电机
column_generator = (worksheet.row_values(i)[0] for i in range(worksheet.nrows))
那么你可以使用itertools.takewhile进行懒惰的评估...当你得到第一个空的时候会停止...如果你只想在获得第一个空值后停止,这将提供更好的性能
from itertools import takewhile
print list(takewhile(str.strip,column_generator))