2015-04-23 123 views
0

我可以把它像这样工作的:xlrd动态变量蟒蛇

book = xlrd.open_workbook(Path+'infile') 
sheet = book.sheet_by_index(0) 
A, B, C, D = ([] for i in range (4)) 
A = sheet.col_values(0) 
B = sheet.col_values(1) 
C = sheet.col_values(2) 
D = sheet.col_values(3) 

,但我希望是让它像这样的工作:

dyn_var_list = [A, B, C, D] 
assert(len(sheet.row_values(0))==len(dyn_var_list)) 
for index, col in enumerate(sheet.row_values(0)): 
    dyn_var_list[index].append(col) 

然而,到目前为止,我只能得到一个值在我的列表中,使用上面的代码,这是由于在我猜的row_values之后使用了“(0)”,但我不知道如何解决这个问题。

回答

0

尝试

for c in range(sheet.ncols): 
    for r in range(sheet.nrows): 
      dyn_var_list[c].append(sheet.cell(r,c).value) 

这里sheet.nrows让你在表的行数。

+0

没有办法。这是接近我得到: dyn_var_list = [A,B,C,d] 为i的范围(LEN(dyn_var_list)): \t dyn_var_list [I] = first_sheet.col_values(ⅰ) 然而,现在“打印(dyn_var_list [1])”打印第一个列表,但“打印(A)”不打印(B,C和D相同) –