2015-04-23 5 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) 

однако, до сих пор я могу получить только один значение в моих списках, используя приведенный выше код, что связано с использованием «(0)» после значений row_values, но я не знаю, как это решить.

ответ

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 = [А, В, С, D] для г в диапазоне (LEN (dyn_var_list)): \t dyn_var_list [I] = first_sheet.col_values ​​(I) Однако, теперь «print (dyn_var_list [1])» печатает первый список, но «print (A)» не имеет значения (для B, C и D) –

Смежные вопросы