2015-04-23 150 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相同) –