Valeurs d'écriture Python Excel à partir de csv à partir de la 2ème colonne

J'utilise XLWT pour écrire des files excel de .csv et j'ai la première colonne dans le csv comme style pour la ligne. Comment puis-je commencer à écrire les valeurs en commençant par la deuxième colonne de chaque ligne (pour ne pas imprimer la valeur, par exemple, "headerStyle")? J'ai essayé de différentes façons, comme la création d'un col_count mais je n'ai pas eu de chance.

row_count = 0 style = rowStyle #Read each row and write to sheet for row in csv_input: #Iterate through each column for col in range(len(row)): if col == 0: style = row[col] else: if(is_number(row[col]) == True): sheet.write(row_count,col,float(row[col]),style) else: sheet.write(row_count,col,row[col],style) #Increment row_count row_count += 1 

Toute aide est appréciée! Merci!

J'ai fini par le find. Pour tous les intéressés, un problème était que le style revenait en tant que string, donc j'ai créé une fonction pour corriger cela:

 def assign_style(ssortingng): if ssortingng=='headerStyle': style = headerStyle return style 

Ensuite, le suivi se déroulerait tout en ignorant la première colonne:

  row_count = 0 #Read each row and write to sheet for row in csv_input: #Iterate through each column for col in range(len(row)): if col == 0: style = assign_style(row[col]) elif(is_number(row[col]) == True): sheet.write(row_count,col-1,float(row[col]),style) else: sheet.write(row_count,col-1,row[col],style) #Increment row_count row_count += 1 

Utilisez iter() . Aussi, ne pas itérer sur la range() . Utilisez plutôt enumerate() . Et utilisez l'opérateur ternaire, il aide à maintenir DRY:

 for row_count, row in enumerate(csv_input): columns = iter(row) style = next(columns) for col_count, col in enumerate(columns, start=1): sheet.write( row_count, col_count, float(col) if is_number(col) else col, style )